1
resposta

duvida

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

1 resposta

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