#include #include #include "serpent.h" #include "terrain.h" Serpent serpent; int direction; void initialiserSerpent() { serpent.longueur = 1; serpent.corps = (Position *)malloc(sizeof(Position) * serpent.longueur); serpent.corps[0].x = LARGEUR_FENETRE / 2; serpent.corps[0].y = HAUTEUR_FENETRE / 2; } void dessinerSerpent() { int i; for (i = 0; i < serpent.longueur; i++) { if (i % 2 == 0) { ChoisirCouleurDessin(CouleurParNom("yellow")); /*JAUNE*/ } RemplirRectangle(serpent.corps[i].x, serpent.corps[i].y, TAILLE_CELLULE, TAILLE_CELLULE); } } void deplacerSerpent() { int i; /* 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; } } int collisionAvecSerpent() { int i; for (i = 1; i < serpent.longueur; i++) { if (serpent.corps[0].x == serpent.corps[i].x && serpent.corps[0].y == serpent.corps[i].y) { return 1; } } return 0; } int collisionAvecBordures() { return (serpent.corps[0].x < 0 || serpent.corps[0].x >= LARGEUR_FENETRE || serpent.corps[0].y < 0 || serpent.corps[0].y >= HAUTEUR_FENETRE); } void gestionCollision() { if (collisionAvecSerpent() || collisionAvecBordures()) { FermerGraphique(); exit(EXIT_SUCCESS); } }