Opa pessoal tudo certo ?
Estou na etapa de cópia do mapa do jogo para fazer com que os fantasmas se movimentem para a direita (Aula 3 - Vídeo 5). Porém estou tendo algum problema na hora de execução do código.
Quando eu rodo meu programa sem a função "fantasma()" roda normal, consigo mover o personagem sem problemas. Porém se eu chamar a função "fantasma()" o programa para de responder logo depois de receber o comando.
Sei que o problema está dentro da função "fantasma()", porém comparei com o código do professor (https://gist.github.com/mauricioaniche/905820c66a4f8e1a3a1c) e não achei nada de diferente...
Segue o link para meu código https://gist.github.com/rkTinelli/be533edabf44e13e6366549081d10897
De qualquer forma, segue o código da função "fantasma()" , "copiamapa()" e "aloca_mapa()"
void fantasma(){
MAPA copia;
copiamapa(&copia, &m);
printf("COPIA !!\n");
imprime_mapa(&m);
int i;
int j;
for (i=0 ; i< copia.linhas; i++){
for (j=0; j< copia.colunas; j++){
if (copia.mapa[i][j] == FANTASMA){
if (ehvalida(&m, i,j+1) && ehvazio(&m,i,j+1)){
andanomapa(&m, i, j, i, j+1);
}
}
}
}
libera_mapa(&copia);
}
-
void copiamapa (MAPA* destino, MAPA* origem){
destino->linhas = origem->linhas;
destino->colunas = origem->colunas;
aloca_mapa(destino);
int i;
for (i=0; i<= origem->linhas; i++){
strcpy(destino->mapa[i], origem->mapa[i]);
}
}
.
void aloca_mapa(MAPA* m){
m->mapa = malloc(sizeof(char*)*m->linhas);
int j;
for (j=0;j<m->linhas;j++){
m->mapa[j] = malloc(sizeof(char*)*(m->colunas+1));
}
}
Valeu pessoal !!!