Quis deixar o scaneamento do comando dentro da função anda() desse jeito:
void anda(){
int x, y;
for(int i = 0; i < linhas; i++){
for (int j = 0; j < colunas; j++){
if (mapa[i][j] = '@'){
x = j;
y = i;
break;
}
}
}
char comando;
scanf(" %c", &comando);
switch (comando){
case 'a':
mapa[y][x - 1] = '@';
break;
case 'w':
mapa[y - 1][x] = '@';
break;
case 's':
mapa[y + 1][x] = '@';
break;
case 'd':
mapa [y][x + 1] ='@';
break;
}
mapa[y][x] = '.';
}
int main(){
le_mapa();
do {
imprime_mapa();
anda();
} while (!fimdejogo());
limpa_mapa();
return 1;
}
mas meu código fica com vários pacman's, um aparece na posição certa e outro fica onde o outro em luagres aleatórios, quando aperto aparece a mensagem "Falha de segmentação (imagem do núcleo gravada)". Alguém pode me ajudar? (tentei tirar o scanf do anda() e colocar o main, mas continuou com o mesmo problema).