passage du serpent en allocation dynamique pour régler le problème de pixel
This commit is contained in:
parent
f6a4f9b645
commit
4f84d03614
@ -4,12 +4,13 @@
|
||||
typedef struct {
|
||||
int x, y;
|
||||
} Segment;
|
||||
typedef Segment* Serpent;
|
||||
|
||||
void initialiserSerpent(Segment serpent[], int *longueur);
|
||||
int gestionDeplacements(Segment serpent[], int *direction_x, int *direction_y);
|
||||
int tuerSerpent(Segment serpent[], int longueur);
|
||||
void mettreAJourSerpent(Segment serpent[], int *longueur, int *direction_x, int *direction_y);
|
||||
void dessinerSerpent(Segment serpent[], int *longueur);
|
||||
void initialiserSerpent(Serpent serpent, int *longueur);
|
||||
int gestionDeplacements(Serpent serpent, int *direction_x, int *direction_y);
|
||||
int tuerSerpent(Serpent serpent, int longueur);
|
||||
void mettreAJourSerpent(Serpent serpent, int *longueur, int *direction_x, int *direction_y);
|
||||
void dessinerSerpent(Serpent serpent, int *longueur);
|
||||
void attendreSerpent(unsigned long int microseconds);
|
||||
|
||||
#endif /*SERPENT_H*/
|
||||
|
@ -23,13 +23,13 @@ void afficherScore(int score) {
|
||||
}
|
||||
|
||||
|
||||
int mangerPomme(Segment serpent[], Pomme pomme) {
|
||||
return serpent[0].x == pomme.x && serpent[0].y == pomme.y;
|
||||
int mangerPomme(Serpent serpent[], Pomme pomme) {
|
||||
return serpent[0]->x == pomme.x && serpent[0]->y == pomme.y;
|
||||
}
|
||||
|
||||
void jouer(int nbPommes, unsigned long int vitesse,int acceleration) {
|
||||
int i;
|
||||
Segment serpent[2400];
|
||||
Serpent serpent=(Serpent) malloc(2400*sizeof(int));
|
||||
int longueur = 10;
|
||||
int direction_x = 1;
|
||||
int direction_y = 0;
|
||||
@ -59,7 +59,7 @@ void jouer(int nbPommes, unsigned long int vitesse,int acceleration) {
|
||||
|
||||
for (i = 0; i < nbPommes; i++) {
|
||||
if (serpent[0].x == pommes[i].x && serpent[0].y == pommes[i].y) {
|
||||
longueur += 2;
|
||||
longueur += 1000;
|
||||
score += 5;
|
||||
if (vitesse >= 15000) {
|
||||
vitesse -= 40;
|
||||
@ -78,6 +78,7 @@ void jouer(int nbPommes, unsigned long int vitesse,int acceleration) {
|
||||
|
||||
/* Attend le choix du joueur après le game over */
|
||||
attendreChoixGameOver();
|
||||
free(serpent);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
#define HAUTEUR_GRILLE 40
|
||||
|
||||
|
||||
void initialiserSerpent(Segment serpent[], int *longueur) {
|
||||
void initialiserSerpent(Serpent serpent, int *longueur) {
|
||||
int i;
|
||||
int centreX = LARGEUR_GRILLE / 2;
|
||||
int centreY = HAUTEUR_GRILLE / 2;
|
||||
@ -21,7 +21,7 @@ void initialiserSerpent(Segment serpent[], int *longueur) {
|
||||
*longueur = 10;
|
||||
}
|
||||
|
||||
int gestionDeplacements(Segment serpent[], int *direction_x, int *direction_y) {
|
||||
int gestionDeplacements(Serpent serpent, int *direction_x, int *direction_y) {
|
||||
int touche;
|
||||
if (ToucheEnAttente()) {
|
||||
touche = Touche();
|
||||
@ -46,7 +46,7 @@ int gestionDeplacements(Segment serpent[], int *direction_x, int *direction_y) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int tuerSerpent(Segment serpent[], int longueur) {
|
||||
int tuerSerpent(Serpent serpent, int longueur) {
|
||||
int i;
|
||||
/*Vérifier si la tête du serpent est sortie de la grille après le déplacement*/
|
||||
if (serpent[0].x < 0 || serpent[0].x >= LARGEUR_GRILLE || serpent[0].y < 0 || serpent[0].y >= HAUTEUR_GRILLE) {
|
||||
@ -65,7 +65,7 @@ int tuerSerpent(Segment serpent[], int longueur) {
|
||||
|
||||
|
||||
|
||||
void mettreAJourSerpent(Segment serpent[], int *longueur, int *direction_x, int *direction_y) {
|
||||
void mettreAJourSerpent(Serpent serpent, int *longueur, int *direction_x, int *direction_y) {
|
||||
int i;
|
||||
int ancienX = serpent[*longueur - 1].x;
|
||||
int ancienY = serpent[*longueur - 1].y;
|
||||
@ -91,7 +91,7 @@ void mettreAJourSerpent(Segment serpent[], int *longueur, int *direction_x, int
|
||||
}
|
||||
|
||||
|
||||
void dessinerSerpent(Segment serpent[], int *longueur) {
|
||||
void dessinerSerpent(Serpent serpent, int *longueur) {
|
||||
int i;
|
||||
for (i = 0; i < *longueur; ++i) {
|
||||
ChoisirCouleurDessin(CouleurParNom("yellow"));
|
||||
@ -104,4 +104,4 @@ void attendreSerpent(unsigned long int microseconds) {
|
||||
while (Microsecondes() < attente_jusqu_a) {
|
||||
/*Attendre jusqu'au temps données en paramètre de la fonction*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user