Eu tentei implementar essa função no meu fogefoge, mas quando eu executo o jogo ele imprime lixo até dar um erro: Segmentation fault (core dumped). Eu tinha tentado usar o printf antes colocar o puts mas o resultado foi o mesmo, e eu tentei adicionar esses \0 mas n resolveu.
void imprimemapa(){
char desenhoparede[4][8] = {
{"......\0" },
{"......\0" },
{"......\0" },
{"......\0" }
};
char desenhofantasma[4][8] = {
{" .-. \0" },
{"| OO| \0" },
{"| | \0" },
{"'^^^' \0" }
};
char desenhoheroi[4][8] = {
{" .--. \0" },
{"/ _.-'\0" },
{"\\ '-.\0" },
{" '--' \0" }
};
char desenhopilula[4][8] = {
{" \0"},
{" .-. \0"},
{" '-' \0"},
{" \0"}
};
char desenhovazio[4][8] = {
{" \0"},
{" \0"},
{" \0"},
{" \0"}
};
for(int i = 0; i < m.linhas; i++){
for(int t = 0; i < 4; t++){
for(int j = 0; j < m.colunas; j++){
switch(m.matriz[i][j]){
case VAZIO:
puts(desenhovazio[t]);
break;
case PILULA:
puts(desenhopilula[t]);
break;
case HEROI:
puts(desenhoheroi[t]);
break;
case FANTASMA:
puts(desenhofantasma[t]);
break;
case PAREDE_VERTICAL:
case PAREDE_HORIZONTAL:
puts(desenhoparede[t]);
break;
}
}
printf("\n");
}
}
}