diff --git a/evenement.c b/evenement.c index 8549670..8e9e04a 100644 --- a/evenement.c +++ b/evenement.c @@ -40,20 +40,21 @@ void InitialiserPastilles(PIXELS *pastilles, PIXELS *serpent, int longueur_serpe } } -void MourrirSerpent(PIXELS *serpent, int longueur_serpent) +int MourrirSerpent(PIXELS *serpent, int longueur_serpent) { int i = 0; for(i=1;i<longueur_serpent;i++) { if(serpent[0].x == serpent[i].x && serpent[0].y == serpent[i].y ) { - FermerGraphique(); + return 1; } } if (serpent[0].x<=0 || serpent[0].x>W_GAME || serpent[0].y<=0 || serpent[0].y>H_GAME) { - FermerGraphique(); + return 1; } + return 0; } int MangerPastille(PIXELS *serpent, PIXELS* pastilles,unsigned long *score,int longueur_serpent) diff --git a/evenement.h b/evenement.h index 4c53aee..f127f37 100644 --- a/evenement.h +++ b/evenement.h @@ -13,7 +13,7 @@ void AfficherTimerEtScore(long unsigned int *score,int minutes,int secondes); int PastilleSurSerpent(PIXELS pastille, PIXELS *serpent, int longueur_serpent); -void MourrirSerpent(PIXELS *serpent, int longueur_serpent); +int MourrirSerpent(PIXELS *serpent, int longueur_serpent); #endif \ No newline at end of file diff --git a/evenement.o b/evenement.o index ac9d453..8c88df1 100644 Binary files a/evenement.o and b/evenement.o differ diff --git a/main.c b/main.c index 8a55384..72d98a2 100644 --- a/main.c +++ b/main.c @@ -207,7 +207,13 @@ int main() suivant=Microsecondes()+delta; AfficherTimerEtScore(&score,minutes,secondes); direction_davant = direction; /* Check si le serpent à le droit de changer de direction */ - MourrirSerpent(serpent,longueur_serpent); + if(MourrirSerpent(serpent,longueur_serpent)) + { + FermerGraphique(); + free(serpent); + free(pastilles); + return EXIT_FAILURE; + } DeplacementSerpent(direction,serpent,longueur_serpent); if(MangerPastille(serpent,pastilles,&score,longueur_serpent) == 1) { diff --git a/main.o b/main.o index 3298ec2..24a8276 100644 Binary files a/main.o and b/main.o differ diff --git a/prog b/prog index 31b140a..2f1e4cf 100755 Binary files a/prog and b/prog differ