ajuda com exercicio python
boa noite pessoal, então, eu tava tentando fazer um jogo da memoria em python, o codigo esta todo certo, com apenas um erro: na hora de escolher a segunda posição, se eu escolho um numero fora do range da matriz, ele para o codigo, fiz isso na primeira escolha e o try except deu certo, podem me ajudar por favor? nao entendi pq o try except nao funciona na hora de escolher a segunda posiçao
import numpy as np
from random import sample
Acabou_Jogo = False
cont = 0
Posicoes_Abertas = []
Tentativas = 1
matriz_inicial = [1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8]
matriz_inicial = sample(matriz_inicial,16)
matriz_inicial = np.reshape(matriz_inicial,(4,4))
print(matriz_inicial)
Pares_Escondidos = [''*'']*16
Pares_Escondidos = np.reshape(Pares_Escondidos,(4,4))
print(Pares_Escondidos)
while Acabou_Jogo == False:
Escolhe_Posicao = int(input(''Escolha a primeira posição[x,y]: ''))
x1 = Escolhe_Posicao // 10 % 10
y1 = Escolhe_Posicao // 1 % 10
try:
Pares_Escondidos[x1][y1] = matriz_inicial[x1][y1]
except IndexError:
print(''Erro: tentando alcançar um índice que não existe na matriz'')
print(Pares_Escondidos)
while Escolhe_Posicao in Posicoes_Abertas or x1 > 3 or y1 > 3:
Escolhe_Posicao = int(input(''Posição inválida. Escolha a primeira posição[x,y]: ''))
x1 = Escolhe_Posicao // 10 % 10
y1 = Escolhe_Posicao // 1 % 10
try:
Pares_Escondidos[x1][y1] = matriz_inicial[x1][y1]
except IndexError:
print(''Erro: tentando alcançar um índice que não existe na matriz'')
print(Pares_Escondidos)
Escolhe_Posicao2 = int(input(''Escolha a segunda posição[x,y]: ''))
x2 = Escolhe_Posicao2 // 10 % 10
y2 = Escolhe_Posicao2 // 1 % 10
try:
Pares_Escondidos[x2][y2] = matriz_inicial[x2][y2]
except IndexError:
print(''Erro: tentando alcançar um índice que não existe na matriz'')
print(Pares_Escondidos)
while Escolhe_Posicao2 in Posicoes_Abertas or x1 > 3 or y1 > 3 or Escolhe_Posicao2 == Escolhe_Posicao:
Escolhe_Posicao2 = int(input(''Posição inválida.Escolha a segunda posição[x,y]: ''))
x2 = Escolhe_Posicao2 // 10 % 10
y2 = Escolhe_Posicao2 // 1 % 10
try:
Pares_Escondidos[x2][y2] = matriz_inicial[x2][y2]
except IndexError:
print(''Erro: tentando alcançar um índice que não existe na lista'')
print(Pares_Escondidos)
if int(matriz_inicial[x1][y1]) == int(matriz_inicial[x2][y2]):
Pares_Escondidos[x1][y1] = matriz_inicial[x1][y1]
Pares_Escondidos[x2][y2] = matriz_inicial[x2][y2]
cont += 1
Posicoes_Abertas.append(Escolhe_Posicao)
Posicoes_Abertas.append(Escolhe_Posicao2)
print(Pares_Escondidos)
print(''Parabéns! Você acertou!'')
if int(matriz_inicial[x1][y1]) != int(matriz_inicial[x2][y2]):
Pares_Escondidos[x1][y1] = ''*''
Pares_Escondidos[x2][y2] = ''*''
Tentativas += 1
if cont == 8:
Acabou_Jogo = True
print(''Parabéns! Você conseguiu descobrir todas as casas em'', Tentativas, ''jogadas!'')
Fábio
Curtidas 0