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