Ep 1 - Função - Pos_ocupada

Re: Ep 1 - Função - Pos_ocupada

por Marcelo Queiroz -
Número de respostas: 0

Olá, Carlos Alberto!

Talvez o mais rápido a fazer no seu caso seja levar a depuração diretamente até o ponto em que o último tabuleiro produz um "." (à esquerda da cabeça) onde deveria ser um "*", ou em outras palavras, ver o que está acontecendo com a chamada da função pos_ocupada com os argumentos (10,10,7,8,8,8,2222). Como essa função deveria rastrear o corpo da cobrinha a partir da posição (x0,y0) da cabeça, logo no primeiro passo do seu laço ela deveria perceber que a posição (7,8) está ocupada. Quem indica isso é o último dígito 2 (=direita) da variável d, que ao refazer o percurso ao contrário a partir da cabeça seria interpretado como um passo "para a esquerda", ou seja, para a posição (7,8), quando a função pos_ocupada deveria devolver True.

Para fazer essa depuração há várias maneiras: você pode adicionar um "if x==7 and y==8:" com um "print()" apenas para adicionar um breakpoint nesse ponto da execução, ou você poderia incluir uma chamada para "pos_ocupada(10,10,7,8,8,8,2222)" no início do seu código só para isolar essa situação (sem passar pelo resto do programa). Pode ajudar também acrescentar alguns "prints" com valores intermediários que você não tem ainda certeza se estão sendo corretamente computados ou não.

Ah, e lembre-se de imprimir a moldura do tabuleiro ("#").

Bom trabalho,

Marcelo