questa è la funzione che gestisce le collisioni deli fantasmi,
grazie per l'auito
codice:
void collisioni_fantasmi(oggetto fantasma, ptr_oggetto list[],ptr_oggetto primi_f,oggetto pacman,int id_f[])
 {
     ptr_oggetto app;
     oggetto appoggio;
     int i;
     mvaddch(0,0,' ');
     list[0]=aggiorna_lista(list[0],fantasma);             /*aggiorna la lista dei fantasmi*/
     app=collisione(list[0],fantasma);
     if(app!=NULL)                                               /*se un fantasma colpisce un'altro fantasma*/
     {
         fantasma=inverti_dir(fantasma);                             /*inverto la direzione del fantasma*/         
         scrivi_fantasma(fantasma,indice(fantasma,id_f));  /*mando il fantasma invertito al processo che l'ha generato*/    
         if((app->direzione!=FERMO)&&(app->direzione!=fantasma.direzione))
         {
             appoggio=inverti_dir(*app);                                 /*inverto il fantasma colpito*/             
             scrivi_fantasma(appoggio,indice(appoggio,id_f));
         }
     }
     else
     {
         app=collisione(list[2],fantasma);
         if(app!=NULL)
         {
             termina(fantasma.id);                                   /*termino il processo del fantasma*/
             termina(app->id);                              /*termino il missile colpito*/
             i=indice(fantasma,id_f);            /*ottengo la indice dell'array in qui viene memorizato il pid del fantasma*/             
             id_f[i]=0;                                              /*azzero il pid del fantasma nell'array dei pid dei fantasmi*/             
             id_f[i]=crea_fantasma(pos_box[i],i);                      /*creo un fantasma nella box dei fantasmi*/
             if(cerca(primi_f,fantasma)!=NULL)         /*se il fantasma è uno dei primi fantasmi, cioe si puo sdoppiare*/
             {
                 i=libero(id_f);                                 /*trovo una posizione libera nell'array dei pid dei fantasmi*/
                 id_f[i]=crea_fantasma(pos_box[i],i);
                 primi_f=togli(primi_f,fantasma);                      /*tolgo il fantasma colpito dalla lista dei primi fantasmi*/
             }
             list[0]=togli(list[0],fantasma);                          /*tolgo il fantasma dalla lista dei fantasmi*/
             list[2]=togli(list[2],*app);                  /*tolgo il missile dalla lista dei missili*/
         }
         if(pos_uguali(pacman.posizione,fantasma.posizione))     /*se il fantasma colpisce pacman*/
             energia=energia-10;                                         /*togli 10 di energia cioe 1 vita a pacman*/
     }
 }