diff --git a/evenement.c b/evenement.c index c57047d..1e0e6ab 100644 --- a/evenement.c +++ b/evenement.c @@ -80,7 +80,6 @@ void DeplacementSerpent(int direction ,PIXELS *serpent, int longueur) int tempX = serpent[0].x; int tempY = serpent[0].y; int i; - int compteur; couleur g; couleur j; ChoisirEcran(2); @@ -88,7 +87,7 @@ void DeplacementSerpent(int direction ,PIXELS *serpent, int longueur) g=CouleurParNom("lightgreen"); - for (i = 2; i < longueur; i += 2) { + for (i = 1; i < longueur; i++) { int tempX2 = serpent[i].x; int tempY2 = serpent[i].y; @@ -98,15 +97,8 @@ void DeplacementSerpent(int direction ,PIXELS *serpent, int longueur) tempX = tempX2; tempY = tempY2; } - for(i=0;i< longueur; i++) - { - if(serpent[i].x != NULL && serpent[i].y != NULL) - { - compteur++; - } - } ChoisirCouleurDessin(g); - RemplirRectangle(serpent[compteur].x,serpent[compteur].y,T_PIXEL,T_PIXEL); + RemplirRectangle(serpent[longueur-1].x,serpent[longueur-1].y,T_PIXEL,T_PIXEL); ChoisirCouleurDessin(j); diff --git a/evenement.o b/evenement.o index 1b34584..8e1a245 100644 Binary files a/evenement.o and b/evenement.o differ diff --git a/graph.h b/graph.h index 8244e09..0a64fe3 100644 --- a/graph.h +++ b/graph.h @@ -18,7 +18,7 @@ int InitialiserGraphique(); int CreerFenetre(int posx,int posy,int X,int Y); /* creer la fenetre graphique de largeur X et longueur Y, et la positionne - sur l'ecran au point (posx,posy). Une seule fenetre autoris�e */ + sur l'ecran au point (posx,posy). Une seule fenetre autoris�e */ void ChoisirTitreFenetre(char *s); /* change le titre de la fenetre */ @@ -34,7 +34,7 @@ void AfficherFenetre(void); void ChoisirEcran(int n); /* fixe l'ecran ou le dessin est effectue : cette ecran est soit 0 (la fenetre - visible, ecran par defaut au demarrage), soit le numero de l'�cran virtuel correspondant */ + visible, ecran par defaut au demarrage), soit le numero de l'�cran virtuel correspondant */ void ChoisirCouleurDessin(couleur c); /* fixe la couleur qui sert au dessin */ @@ -44,14 +44,14 @@ couleur CouleurParNom(char * nom); contient la liste des couleurs accessibles via leur nom */ couleur CouleurParComposante(unsigned char r, unsigned char v,unsigned char b); -/* renvoie la couleur d�finie par ses trois composantes */ +/* renvoie la couleur d�finie par ses trois composantes */ int Maxx(); -/* renvoie la largeur de l'ecran : il faut que le mode graphique ait �t� +/* renvoie la largeur de l'ecran : il faut que le mode graphique ait �t� initialise !!! */ int Maxy(); -/* renvoie la hauteur de l'ecran : il faut que le mode graphique ait �t� +/* renvoie la hauteur de l'ecran : il faut que le mode graphique ait �t� initialise !!! */ void DessinerPixel(int x,int y); @@ -61,7 +61,7 @@ void DessinerSegment(int x,int y,int xx,int yy); /* idem precedent, mais avec la couleur de dessin */ void DessinerSegments(Point * sommets,int nb_sommets); -/* trace pour chaque paire sommet[i],sommet[i+1] le segment correspondant. Si le deux extr�mit�s correspondent, le polygone est ferm� */ +/* trace pour chaque paire sommet[i],sommet[i+1] le segment correspondant. Si le deux extr�mit�s correspondent, le polygone est ferm� */ void DessinerRectangle(int x,int y,int l,int h); /* idem, mais utilise la couleur de dessin */ @@ -79,11 +79,11 @@ void RemplirTriangle(int x,int y,int xx,int yy,int xxx,int yyy); /* trace un triangle plein */ void RemplirPolygone(Point * sommets,int nb_sommet); -/* Trace un polygone plein d�fini par son tableau de sommets. Si les extremit�s ne coincident pas, le polygone est ferm� automatiquement. +/* Trace un polygone plein d�fini par son tableau de sommets. Si les extremit�s ne coincident pas, le polygone est ferm� automatiquement. */ int ToucheEnAttente(); -/* renvoie 1 si une touche a �t� enfonc�e, 0 sinon */ +/* renvoie 1 si une touche a �t� enfonc�e, 0 sinon */ KeySym Touche(); /* renvoie la premiere touche du tampon : cette fonction est bloquante => @@ -110,22 +110,22 @@ void ChoisirModeDessin(int m); /* fixe le mode d'affichage : 0<->ecrasement 1<->xor */ int TailleChaineEcran(char *t,int taile); -/* renvoie, en pixel, la taille horizontale occupee par la chaine � l'�cran :taille est la taille de la police (0,1,2) */ +/* renvoie, en pixel, la taille horizontale occupee par la chaine � l'�cran :taille est la taille de la police (0,1,2) */ int TailleSupPolice(int taille); -/* renvoie la taiile maximale de la police, en pixel, au dessus de la ligne d'�criture */ +/* renvoie la taiile maximale de la police, en pixel, au dessus de la ligne d'�criture */ int TailleInfPolice(int taille); -/* renvoie la taille maximale de la police, en pixel, en dessous de la ligne d'�criture */ +/* renvoie la taille maximale de la police, en pixel, en dessous de la ligne d'�criture */ void CopierZone(int src,int dst,int ox,int oy,int L,int H,int dx,int dy); -/* copie une zone de l'�cran vers l'�cran dst. La zone copi�e est le rectangle delimite par le coin superieure hauche (ox,oy) et sa largeur l et hauteur h. Cette zone est copi� au point (dx,dy) de l'ecran dst */ +/* copie une zone de l'�cran vers l'�cran dst. La zone copi�e est le rectangle delimite par le coin superieure hauche (ox,oy) et sa largeur l et hauteur h. Cette zone est copi� au point (dx,dy) de l'ecran dst */ void FermerGraphique(); /* fermeture du mode graphique */ unsigned long Microsecondes(); -/* renvoie le nombre de microsecondes ecoul�es depuis le +/* renvoie le nombre de microsecondes ecoul�es depuis le lancement du programme */ void SourisPosition(); @@ -135,15 +135,15 @@ int SourisCliquee(); /* indique un clic de souris (1 si oui, 0 sinon), et recupere si c'est le cas la position au moment du clic dans _X et _Y */ -/* fonctions a r��crire proprement */ +/* fonctions a r��crire proprement */ int ChargerSprite(char *file); -/* charge un srpite en m�moire, et renvoie son num�ro +/* charge un srpite en m�moire, et renvoie son num�ro * -1 en cas d'echec */ void AfficherSprite(int n,int x,int y); -/* affiche le sprite correspondant � son num�ro */ +/* affiche le sprite correspondant � son num�ro */ void LibererSprite(int n); -/* libere les ressources associ�es au sprite +/* libere les ressources associ�es au sprite * n */ #endif diff --git a/main.c b/main.c index 9ec439e..871d46f 100644 --- a/main.c +++ b/main.c @@ -95,9 +95,9 @@ int main() int n = 0; int m = 0; - size_t longueur_serpent = 20; + size_t longueur_serpent = 10; size_t longueur_pastilles = 10; - int *serpent = (int *)malloc(longueur_serpent * sizeof(int)); + PIXELS *serpent = (PIXELS *)malloc(longueur_serpent * sizeof(PIXELS)); PIXELS *pastilles = (PIXELS *)malloc(longueur_pastilles * sizeof(PIXELS)); int direction = 0; @@ -186,7 +186,7 @@ int main() if(MangerPastille(serpent,pastilles,&score) == 1) { longueur_serpent+=2; - serpent = (int*) realloc(serpent,longueur_serpent * sizeof(int)); + serpent = (PIXELS*) realloc(serpent,longueur_serpent * sizeof(PIXELS)); } } } diff --git a/main.o b/main.o index 3e46947..3c504eb 100644 Binary files a/main.o and b/main.o differ diff --git a/prog b/prog index eeb5931..746595a 100755 Binary files a/prog and b/prog differ