(...continuo)
codice:
case 'o': /** CASO BOMBA **/
bomba=valore_letto; //assegno il nuovo valore di bomba
mvaddch(bomba.y-1,bomba.x,' '); //cancello la vecchia posizione
/** ----------------------------------- Controllo collisioni ----------------------------------- **/
// bomba -> astronave
if(bomba.y==MAXY) //se la bomba ha raggiunto la penultima posizione nello schermo
{
if(bomba.x==astronave.x) //verifica se ha colpito l'astronave e in caso affermativo il gioco termina e l'astronave ha perso
GAME_OVER=-1;
pthread_cancel(bomba.pid); //uccido il processo bomba
pthread_detach(bomba.pid); // e libero la memoria
}
else //altrimenti
{
attron(COLOR_PAIR(4));
mvaddch(bomba.y,bomba.x,bomba.c); //stampo la nuova posizione
}
break;
case '$': /** CASO NEMICO **/
if(nemico[valore_letto.p].x>=0) // se il nemico è giÃ_ entrato in scena
mvaddch(nemico[valore_letto.p].y,nemico[valore_letto.p].x,' '); // cancello la "vecchia" posizione del nemico
nemico[valore_letto.p]=valore_letto; // aggiorno la posizione del nemico
attron(COLOR_PAIR(1));
mvaddch(nemico[valore_letto.p].y,nemico[valore_letto.p].x,nemico[valore_letto.p].c); // e lo visualizzo
/** ----------------------------------- Controllo collisioni ----------------------------------- **/
// nemico -> astronave
if(nemico[valore_letto.p].y==astronave.y) // se il nemico raggiunge la linea dell'astronave
{
pthread_cancel(nemico[valore_letto.p].pid); // uccido il nemico
pthread_detach(nemico[valore_letto.p].pid); // e libero la memoria
pthread_cancel(astronave.pid); // uccido l'astronave
pthread_detach(astronave.pid); // e libero la memoria
GAME_OVER=-1; // l'astronave ha perso
}
break;
} // fine switch
if(!NEM_VIVI) // se NEM_VIVI è uguale a 0
GAME_OVER=1; // l'astronave ha vinto
curs_set(0);
refresh();
} // fine do
while(!GAME_OVER);
if(GAME_OVER>0)
{
mvaddstr(MAXY/2, MAXX/2-3,"HAI VINTO!");
refresh();
fflush(stdin);
getchar();
}
else
{
mvaddstr(MAXY/2, MAXX/2-3,"HAI PERSO!");
refresh();
fflush(stdin);
getchar();
}
} // fine Funzione Controllo
fine....so che è lunghetto..ma vi pregoooo!!dateci uno sguardo!