From 371da4869709c4b568829a4928177aae6cfd9681 Mon Sep 17 00:00:00 2001 From: stiti Date: Wed, 13 Dec 2023 07:41:20 +0100 Subject: [PATCH] Correction bug --- include/serpent.h | 1 - src/pomme.c | 31 +++++++++++++++++++------------ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/include/serpent.h b/include/serpent.h index 85d0f49..628b864 100644 --- a/include/serpent.h +++ b/include/serpent.h @@ -10,7 +10,6 @@ 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); -int seMangerQueue(Segment serpent[], int longueur); void attendreSerpent(unsigned long int microseconds); #endif /*SERPENT_H*/ diff --git a/src/pomme.c b/src/pomme.c index 85f75b8..a0a0472 100644 --- a/src/pomme.c +++ b/src/pomme.c @@ -2,27 +2,34 @@ #include #include "../include/grille.h" #include "../include/serpent.h" +#include "../include/pomme.h" -typedef struct { - int x; - int y; -} Pomme; - -Pomme creerPomme() { +Pomme creerPomme(Segment serpent[], int longueur) { Pomme pomme; - pomme.x = rand() % 60; - pomme.y = rand() % 40; + int i; + int serpentOccupation[LARGEUR_GRILLE][HAUTEUR_GRILLE] = {0}; /*Utiliser les constantes de grille.h*/ + + /*Marquer les cases occupées par le serpent*/ + for (i = 0; i < longueur; ++i) { + serpentOccupation[serpent[i].x][serpent[i].y] = 1; + } + + do { + pomme.x = rand() % LARGEUR_GRILLE; + pomme.y = rand() % HAUTEUR_GRILLE; + } while (serpentOccupation[pomme.x][pomme.y]); + return pomme; } -void dessinerPomme(Pomme pomme,int id_pomme) { - /* Affichez une pomme*/ - AfficherSprite(id_pomme,pomme.x * TAILLE_CASE, pomme.y * TAILLE_CASE); +void dessinerPomme(Pomme pomme, int id_pomme) { + /* Affichez une pomme */ + AfficherSprite(id_pomme, pomme.x * TAILLE_CASE, pomme.y * TAILLE_CASE); } int verifierCollisionPommeSerpent(Pomme pomme, Segment serpent[], int longueur) { int i; - /*Vérifie si la pomme est sur une case occupée par le serpent*/ + /* Vérifie si la pomme est sur une case occupée par le serpent */ for (i = 0; i < longueur; ++i) { if (pomme.x == serpent[i].x && pomme.y == serpent[i].y) { return 1; /* Collision */