debug struct serpent

This commit is contained in:
David AKAGUNDUZ 2023-12-12 16:03:47 +01:00
parent ee032fe2e9
commit 15a99a4583
6 changed files with 22 additions and 30 deletions

@ -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);

Binary file not shown.

34
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<EFBFBD>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'<EFBFBD>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<EFBFBD>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 <EFBFBD>t<EFBFBD>
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 <EFBFBD>t<EFBFBD>
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<EFBFBD>mit<EFBFBD>s correspondent, le polygone est ferm<72> */
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<EFBFBD>fini par son tableau de sommets. Si les extremit<69>s ne coincident pas, le polygone est ferm<72> automatiquement.
*/
int ToucheEnAttente();
/* renvoie 1 si une touche a été enfoncée, 0 sinon */
/* renvoie 1 si une touche a <EFBFBD>t<EFBFBD> enfonc<6E>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 <EFBFBD> l'<27>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'<EFBFBD>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'<EFBFBD>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'<EFBFBD>cran vers l'<27>cran dst. La zone copi<70>e est le rectangle delimite par le coin superieure hauche (ox,oy) et sa largeur l et hauteur h. Cette zone est copi<EFBFBD> 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<EFBFBD>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<EFBFBD><EFBFBD>crire proprement */
int ChargerSprite(char *file);
/* charge un srpite en mémoire, et renvoie son numéro
/* charge un srpite en m<EFBFBD>moire, et renvoie son num<75>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 <EFBFBD> son num<75>ro */
void LibererSprite(int n);
/* libere les ressources associées au sprite
/* libere les ressources associ<EFBFBD>es au sprite
* n */
#endif

6
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));
}
}
}

BIN
main.o

Binary file not shown.

BIN
prog

Binary file not shown.