maj timer + ajout 5 pommes

This commit is contained in:
2023-12-04 17:27:48 +01:00
parent 82b8b9a879
commit be324de28e
7 changed files with 89 additions and 77 deletions

View File

@@ -1,27 +1,64 @@
#include <stdlib.h>
#include <stdio.h>
#include <graph.h>
#include "../pastille.h"
int direction = 4;
int t;
void Controle(void){
printf("JSHUIHUS");
while(ToucheEnAttente()){
t = Touche();
switch(t){
case XK_Left:
printf("Gauche\n");
break;
case XK_Right :
printf("Droite\n");
break;
case XK_Up:
printf("Haut");
break;
case XK_Down:
printf("bas");
break;
}
}
}
typedef struct {
Position *corps;
int longueur;
} Serpent;
Position pomme;
Serpent serpent;
int direction = 0; /* 0: droite, 1: bas, 2: gauche, 3: haut*/
void initialiserSerpent() {
serpent.longueur = 10;
serpent.corps = (Position *)malloc(sizeof(Position) * serpent.longueur);
serpent.corps[0].x = LARGEUR_FENETRE / 2;
serpent.corps[0].y = HAUTEUR_FENETRE / 2;
}
void dessinerSerpent() {
for (i = 0; i < serpent.longueur; i++) {
if (i % 2 == 0) {
ChoisirCouleurDessin(CouleurParComposante(0,0,0)); /*JAUNE*/
}
RemplirRectangle(serpent.corps[i].x, serpent.corps[i].y, TAILLE_CELLULE, TAILLE_CELLULE);
}
}
void deplacerSerpent() {
/* Déplacer le corps du serpent*/
for (i = serpent.longueur - 1; i > 0; i--) {
serpent.corps[i] = serpent.corps[i - 1];
}
/* Déplacer la tête du serpent en fonction de la direction*/
switch (direction) {
case 0:
serpent.corps[0].x += TAILLE_CELLULE;
break;
case 1:
serpent.corps[0].y += TAILLE_CELLULE;
break;
case 2:
serpent.corps[0].x -= TAILLE_CELLULE;
break;
case 3:
serpent.corps[0].y -= TAILLE_CELLULE;
break;
}
}
void gestionCollision() {
if (collisionAvecPomme()) {
serpent.longueur++;
serpent.corps = realloc(serpent.corps, sizeof(Position) * serpent.longueur);
genererPomme();
}
if (collisionAvecSerpent() || collisionAvecBordures()) {
FermerGraphique();
exit(EXIT_SUCCESS);
}
}