#include #include #include #include #include "evenement.h" #include "main.h" #define delta 100000L int ArrondirPixel(int nombre) /* Calcule un arrondi du pixel pour pouvoir respecter la norme des 40 lignes et 60 colonnes */ { /* Calcul du reste de la division par 15 */ int reste = nombre % 15; /* Calcul de l'arrondi au multiple de 15 le plus proche */ int arrondi = (reste <= 7) ? nombre - reste : nombre + (15 - reste); return arrondi; } PIXELS gen_pastille(PIXELS *serpent,PIXELS *pastilles,int longueur_serpent) /* nb_pastille = int nombre de pastille voulue , p_pastilles est un pointeur d'un tableau de pixels qui sont des pastilles*/ /*Générer une pastille dans la grid*/ /*Code n'est pas complet*/ /*-Elles se génèrent à des endroits qui peuvent être les mêmes ou gêner le snake*/ { int x_pastille,y_pastille,i; int ok = 0; PIXELS pastille; do{ ok = 0; x_pastille= ArrondirPixel(rand()%W_GAME); y_pastille = ArrondirPixel(rand()%H_GAME); for(i=0;isuivant) { n++; if(n%60==0) { m++; n=0; } AfficherTimerEtScore(&score,temps); suivant=Microsecondes()+delta; direction_davant = direction; /* Check si le serpent à le droit de changer de direction */ MourrirSerpent(serpent,longueur_serpent); DeplacementSerpent(direction,serpent,longueur_serpent); if(MangerPastille(serpent,pastilles,&score,longueur_serpent) == 1) { longueur_serpent+=2; serpent = (PIXELS*) realloc(serpent,longueur_serpent * sizeof(PIXELS)); } } } } } FermerGraphique(); return EXIT_SUCCESS; }