Rectification Segmentation Fault du dernier commit (Agrandissement serpent + score)

This commit is contained in:
Vincent 2023-12-09 09:04:42 +01:00
parent c9155cdd88
commit 16054ef43f
3 changed files with 15 additions and 16 deletions

@ -38,7 +38,7 @@ void InitialiserPastilles(PIXELS *pastilles) {
} }
} }
void MangerPastille(int *serpent, PIXELS* pastilles, size_t *longueur_serpent, size_t longueur_pastilles,unsigned long *score) int MangerPastille(int *serpent, PIXELS* pastilles,unsigned long *score)
{ {
couleur r; couleur r;
int i = 0; int i = 0;
@ -50,19 +50,18 @@ void MangerPastille(int *serpent, PIXELS* pastilles, size_t *longueur_serpent, s
{ {
if(serpent[0] == pastilles[i].x && serpent[1] == pastilles[i].y) if(serpent[0] == pastilles[i].x && serpent[1] == pastilles[i].y)
{ {
printf("\nMANGER !\n");
pastilles[i] = gen_pastille(); pastilles[i] = gen_pastille();
RemplirRectangle(pastilles[i].x,pastilles[i].y,T_PIXEL,T_PIXEL); RemplirRectangle(pastilles[i].x,pastilles[i].y,T_PIXEL,T_PIXEL);
*longueur_serpent+=2;/*augmente la taille du serpent de deux car un pixel =2*/
*score+=5; *score+=5;
printf("%ld",*longueur_serpent); /*voir la taille du serpent*/ return 1;
} }
} }
return 0;
} }
int PastilleSurSerpent(PIXELS pastille, int *serpent, size_t longueur_serpent)
/*int PastilleSurSerpent(PIXELS pastille, int *serpent, size_t longueur_serpent)
{ {
int i; int i;
@ -74,7 +73,7 @@ int PastilleSurSerpent(PIXELS pastille, int *serpent, size_t longueur_serpent)
} }
} }
return 0; return 0;
} }*/
void DeplacementSerpent(int direction ,int *serpent, int longueur) void DeplacementSerpent(int direction ,int *serpent, int longueur)
{ {
@ -105,13 +104,13 @@ void DeplacementSerpent(int direction ,int *serpent, int longueur)
if(direction == 0) /* Direction vers la gauche */ if(direction == 0) /* Direction vers la gauche */
{ {
serpent[0]-=T_PIXEL; serpent[0]-=T_PIXEL;
RemplirRectangle(serpent[0],serpent[1],T_PIXEL,T_PIXEL); RemplirRectangle(serpent[0],serpent[1],T_PIXEL,T_PIXEL);
} }
else if(direction == 1) /* Direction vers le haut */ else if(direction == 1) /* Direction vers le haut */
{ {
serpent[1]-=T_PIXEL; serpent[1]-=T_PIXEL;
RemplirRectangle(serpent[0],serpent[1],T_PIXEL,T_PIXEL); RemplirRectangle(serpent[0],serpent[1],T_PIXEL,T_PIXEL);
} }
else if(direction == 2) /* Direction vers la droite */ else if(direction == 2) /* Direction vers la droite */
{ {

@ -3,7 +3,7 @@
#ifndef EVENEMENT_H #ifndef EVENEMENT_H
#define EVENEMENT_H #define EVENEMENT_H
void MangerPastille(int *serpent, PIXELS* pastilles, size_t longueur_serpent, size_t longueur_pastilles, unsigned long *score); int MangerPastille(int *serpent, PIXELS* pastilles,unsigned long *score);
void DeplacementSerpent(int direction ,int *serpent, int longueur); void DeplacementSerpent(int direction ,int *serpent, int longueur);
@ -11,6 +11,7 @@ void InitialiserPastilles(PIXELS *pastilles);
void AfficherTimerEtScore(int m,int n,int score); void AfficherTimerEtScore(int m,int n,int score);
int PastilleSurSerpent(PIXELS pastille, int *serpent, size_t longueur_serpent); int PastilleSurSerpent(PIXELS pastille, int *serpent, int longueur_serpent);
#endif #endif

11
main.c

@ -169,11 +169,6 @@ int main()
pause = 0; pause = 0;
} }
default:
printf("Autre touche\n");
break;
} }
} }
else else
@ -194,7 +189,11 @@ int main()
direction_davant = direction; /* Check si le serpent à le droit de changer de direction */ direction_davant = direction; /* Check si le serpent à le droit de changer de direction */
DeplacementSerpent(direction,serpent,longueur_serpent); DeplacementSerpent(direction,serpent,longueur_serpent);
MangerPastille(serpent,pastilles,&longueur_serpent,longueur_pastilles,&score); if(MangerPastille(serpent,pastilles,&score) == 1)
{
longueur_serpent+=2;
serpent = (int*) realloc(serpent,longueur_serpent * sizeof(int));
}
} }
} }