No Caso se ele pode passar por cima do que e diferente o pacman também pode comer o F já que somente foi dito que o que não pode passar pro cima do que e igual e das paredes, não assistir o próximo vídeo creio que a solução esteja adiante
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
No Caso se ele pode passar por cima do que e diferente o pacman também pode comer o F já que somente foi dito que o que não pode passar pro cima do que e igual e das paredes, não assistir o próximo vídeo creio que a solução esteja adiante
Olá Jhon.
Analisando a lógica na função podeandar, verificamos que sim, é possível que o HEROI pode comer o FANTASMA.
int podeandar(MAPA* m, char personagem, int x, int y) {
return
ehvalida(m, x, y) &&
!ehparede(m, x, y) &&
!ehpersonagem(m, personagem, x, y);
}Na função ehvalida verificamos se o movimento está dentro do mapa.
int ehvalida(MAPA* m, int x, int y) {
if(x >= m->linhas)
return 0;
if(y >= m->colunas)
return 0;
return 1;
}Na função ehpersonagem verificamos se o lugar destino tem um personagem tem igual ao que está se movendo.
int ehpersonagem(MAPA* m, char personagem, int x, int y) {
return
m->matriz[x][y] == personagem;
}Na função ehparede verificamos se tem uma parede na posição destino.
int ehparede(MAPA* m, int x, int y) {
return
m->matriz[x][y] == PAREDE_VERTICAL ||
m->matriz[x][y] == PAREDE_HORIZONTAL;
}Então sim é possível, mas você está correto, mais para frente esse ponto será solucionado. Espero ter ajudado, mas qualquer duvida não hesite em perguntar.
Bons Estudos