Isso msm se não for parede ele retorna verdadeiro.
E tentando entender esse metodo "**podeandar**",
Ele só vai conseguir andar se o medodo "**podeandar**" retornar verdadeiro(true);
Se é valida, se nao tiver parede e se não for personagem.
Vou dar 2 cenarios de exemplos.
Cenario 1 pode andar.
Ex:
ehvalida(m, x, y) = true
ehparede(m, x, y) = false -> negando ( !false ) fica true
ehpersonagem(m, personagem, x, y) = false negando ( !false ) fica true
com isso o return ( true && true && true ) é true ai ele pode andar.
-----------------------------------------------------------------------------------------------------------
Cenario 2 não pode andar.
Ex:
ehvalida(m, x, y) = true
ehparede(m, x, y) = true -> negando ( !true ) fica false
ehpersonagem(m, personagem, x, y) = false negando ( !false ) fica true
com isso o return ( true && false && true ) é false ai ele não pode andar.