ajuda com exercicio python

06/11/2020

0

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

Fábio

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar