diff --git a/Makefile b/Makefile index 062f636..98dba6f 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ SRCDIR = ./src HDIR = ./include ODIR = ./out OFILES = $(subst src/,out/,$(subst .c,.o,$(shell find $(SRCDIR)/ -type f))) -EXE = game +EXE = snake ### BUT PAR DEFAUT ### @@ -30,7 +30,7 @@ clean : -rm -rf $(ODIR) mrproper : - clean but + rm -rf snake ### BUTS FACTICES ### diff --git a/include/pomme.h b/include/pomme.h index e877b54..9679094 100644 --- a/include/pomme.h +++ b/include/pomme.h @@ -9,8 +9,7 @@ typedef struct { int y; } Pomme; -Pomme creerPomme(); +Pomme creerPomme(Serpent serpent, int longueur); void dessinerPomme(Pomme pomme,int id_pomme); -int verifierCollisionPommeSerpent(Pomme pomme, Segment serpent[], int longueur); #endif /*POMME_H*/ diff --git a/src/jeu.c b/src/jeu.c index a974ad8..b9ececa 100644 --- a/src/jeu.c +++ b/src/jeu.c @@ -46,7 +46,7 @@ void jouer(int nbPommes, unsigned long int vitesse,int acceleration) { id_pomme = ChargerSprite("img/pomme1.png"); for (i = 0; i < nbPommes; i++) { - pommes[i] = creerPomme(); + pommes[i] = creerPomme(serpent,longueur); dessinerPomme(pommes[i], id_pomme); } @@ -64,7 +64,7 @@ void jouer(int nbPommes, unsigned long int vitesse,int acceleration) { if (vitesse >= 15000) { vitesse -= 40; } - pommes[i] = creerPomme(); + pommes[i] = creerPomme(serpent,longueur); dessinerPomme(pommes[i], id_pomme); } } diff --git a/src/pomme.c b/src/pomme.c index 7fc8702..0f927d2 100644 --- a/src/pomme.c +++ b/src/pomme.c @@ -4,26 +4,27 @@ #include "../include/serpent.h" #include "../include/pomme.h" +int estSurSerpent(Pomme pomme, Serpent serpent, int longueur) { + int i; + for (i = 0; i < longueur; ++i) { + if (pomme.x == serpent[i].x && pomme.y == serpent[i].y) { + return 1; /*La pomme est sur le serpent*/ + } + } + return 0; /*La pomme n'est pas sur le serpent*/ +} -Pomme creerPomme() { +Pomme creerPomme(Serpent serpent, int longueur) { Pomme pomme; - pomme.x = rand() % 60; - pomme.y = rand() % 40; + do { + pomme.x = rand() % LARGEUR_GRILLE; + pomme.y = rand() % HAUTEUR_GRILLE; + } while (estSurSerpent(pomme, serpent, longueur)); return pomme; } + 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 */ - for (i = 0; i < longueur; ++i) { - if (pomme.x == serpent[i].x && pomme.y == serpent[i].y) { - return 1; /* Collision */ - } - } - return 0; /* Pas de collision */ -} +} \ No newline at end of file