Ajout de fonctionnalité : Impossible de faire spawn une pomme sur la queue du serpent
This commit is contained in:
parent
c2dc5118fd
commit
6950f93605
4
Makefile
4
Makefile
@ -6,7 +6,7 @@ SRCDIR = ./src
|
|||||||
HDIR = ./include
|
HDIR = ./include
|
||||||
ODIR = ./out
|
ODIR = ./out
|
||||||
OFILES = $(subst src/,out/,$(subst .c,.o,$(shell find $(SRCDIR)/ -type f)))
|
OFILES = $(subst src/,out/,$(subst .c,.o,$(shell find $(SRCDIR)/ -type f)))
|
||||||
EXE = game
|
EXE = snake
|
||||||
|
|
||||||
### BUT PAR DEFAUT ###
|
### BUT PAR DEFAUT ###
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ clean :
|
|||||||
-rm -rf $(ODIR)
|
-rm -rf $(ODIR)
|
||||||
|
|
||||||
mrproper :
|
mrproper :
|
||||||
clean but
|
rm -rf snake
|
||||||
|
|
||||||
### BUTS FACTICES ###
|
### BUTS FACTICES ###
|
||||||
|
|
||||||
|
@ -9,8 +9,7 @@ typedef struct {
|
|||||||
int y;
|
int y;
|
||||||
} Pomme;
|
} Pomme;
|
||||||
|
|
||||||
Pomme creerPomme();
|
Pomme creerPomme(Serpent serpent, int longueur);
|
||||||
void dessinerPomme(Pomme pomme,int id_pomme);
|
void dessinerPomme(Pomme pomme,int id_pomme);
|
||||||
int verifierCollisionPommeSerpent(Pomme pomme, Segment serpent[], int longueur);
|
|
||||||
|
|
||||||
#endif /*POMME_H*/
|
#endif /*POMME_H*/
|
||||||
|
@ -46,7 +46,7 @@ void jouer(int nbPommes, unsigned long int vitesse,int acceleration) {
|
|||||||
id_pomme = ChargerSprite("img/pomme1.png");
|
id_pomme = ChargerSprite("img/pomme1.png");
|
||||||
|
|
||||||
for (i = 0; i < nbPommes; i++) {
|
for (i = 0; i < nbPommes; i++) {
|
||||||
pommes[i] = creerPomme();
|
pommes[i] = creerPomme(serpent,longueur);
|
||||||
dessinerPomme(pommes[i], id_pomme);
|
dessinerPomme(pommes[i], id_pomme);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ void jouer(int nbPommes, unsigned long int vitesse,int acceleration) {
|
|||||||
if (vitesse >= 15000) {
|
if (vitesse >= 15000) {
|
||||||
vitesse -= 40;
|
vitesse -= 40;
|
||||||
}
|
}
|
||||||
pommes[i] = creerPomme();
|
pommes[i] = creerPomme(serpent,longueur);
|
||||||
dessinerPomme(pommes[i], id_pomme);
|
dessinerPomme(pommes[i], id_pomme);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
31
src/pomme.c
31
src/pomme.c
@ -4,26 +4,27 @@
|
|||||||
#include "../include/serpent.h"
|
#include "../include/serpent.h"
|
||||||
#include "../include/pomme.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 pomme;
|
||||||
pomme.x = rand() % 60;
|
do {
|
||||||
pomme.y = rand() % 40;
|
pomme.x = rand() % LARGEUR_GRILLE;
|
||||||
|
pomme.y = rand() % HAUTEUR_GRILLE;
|
||||||
|
} while (estSurSerpent(pomme, serpent, longueur));
|
||||||
return pomme;
|
return pomme;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void dessinerPomme(Pomme pomme, int id_pomme) {
|
void dessinerPomme(Pomme pomme, int id_pomme) {
|
||||||
/* Affichez une pomme */
|
/* Affichez une pomme */
|
||||||
AfficherSprite(id_pomme, pomme.x * TAILLE_CASE, pomme.y * TAILLE_CASE);
|
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 */
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user