Ajout du timer en secondes réelles, mort serpent quand il se touche

This commit is contained in:
2023-12-14 11:25:22 +01:00
parent f83e28683d
commit 04623f82ec
8 changed files with 71 additions and 19 deletions

22
main.c
View File

@@ -18,7 +18,7 @@ int ArrondirPixel(int nombre) /* Calcule un arrondi du pixel pour pouvoir respec
return arrondi;
}
PIXELS gen_pastille(PIXELS *serpent,int longueur_serpent)
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*/
@@ -34,13 +34,12 @@ PIXELS gen_pastille(PIXELS *serpent,int longueur_serpent)
y_pastille = ArrondirPixel(rand()%H_GAME);
for(i=0;i<longueur_serpent;i++)
{
if(x_pastille == serpent[i].x && y_pastille == serpent[i].y)
if(x_pastille == serpent[i].x && y_pastille == serpent[i].y && x_pastille == pastilles[i].x && y_pastille == pastilles[i].y )
{
ok = 1;
ok = 1; /* Check si la pastille se genère sur une coordonné du serpent ou d'une pastille existante */
}
}
}
}while(ok);
if(x_pastille < DECALEMENT)
@@ -101,13 +100,15 @@ void DessinerScene(PIXELS *pastilles, PIXELS *serpent, int longueur_serpent) /*
int main()
{
unsigned char pause = 0;
unsigned long *score =0;
unsigned long score =0;
unsigned long suivant;
int go_on=1;
int n = 0;
int m = 0;
time_t temps;
size_t longueur_serpent = 200;
size_t longueur_serpent = 12;
size_t longueur_pastilles = PASTILLES;
PIXELS *serpent = (PIXELS *)malloc(longueur_serpent * sizeof(PIXELS));
PIXELS *pastilles = (PIXELS *)malloc(longueur_pastilles * sizeof(PIXELS));
@@ -115,6 +116,8 @@ int main()
int direction = 0;
int direction_davant = 0;
temps = time(NULL); /*Première mesure du temps*/
if(serpent == NULL) {
fprintf(stderr, "Erreur d'allocation de mémoire.\n");
return EXIT_FAILURE;
@@ -189,11 +192,12 @@ int main()
n=0;
}
AfficherTimerEtScore(m,n,score);
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)
{