diff --git a/JEUX_SERPENT/Jeux b/JEUX_SERPENT/Jeux index d0653ad..1c0c84f 100755 Binary files a/JEUX_SERPENT/Jeux and b/JEUX_SERPENT/Jeux differ diff --git a/JEUX_SERPENT/fonction.h b/JEUX_SERPENT/fonction.h index bc28ce2..66cf829 100644 --- a/JEUX_SERPENT/fonction.h +++ b/JEUX_SERPENT/fonction.h @@ -9,9 +9,9 @@ extern char timer[6]; extern unsigned long int suivant; extern int serpent, tete_up, tete_down, tete_right, tete_left; -extern int direction,segment; extern int pos_x[2400], pos_y[2400], old_x[2400], old_y[2400]; extern long int vitesse; +extern int segment; extern int pomme, pommex[5], pommey[5]; extern int fond, Nbr; @@ -23,15 +23,18 @@ extern int pause; extern int imageMenu; void Pomme(); -void Controle(); -void Serpent(); -void Update_Serpent(); + +int Controle(int direction); +void Serpent(int direction); +void Update_Serpent(int direction); + void Terrain(); void Timer(); void Update_Timer(); void DessinerScene(); void Score(); void Collision(); + void MenuDeFin(); void MenuDebut(); void Attendre(); diff --git a/JEUX_SERPENT/main.c b/JEUX_SERPENT/main.c index 60c6d97..401bb64 100644 --- a/JEUX_SERPENT/main.c +++ b/JEUX_SERPENT/main.c @@ -11,7 +11,8 @@ unsigned long int suivant; long int vitesse=100000; int serpent; -int direction=4 /*1 : vers le haut, 2 : vers le bas, 3 vers la gauche, 4 vers la droite*/, segment=10, i=0; +int direction=4; /*1 : vers le haut, 2 : vers le bas, 3 vers la gauche, 4 vers la droite*/ +int segment=10; int pos_x[2400], pos_y[2400], old_x[2400], old_y[2400]; int tete_up, tete_down, tete_right, tete_left; @@ -59,12 +60,13 @@ int main(){ /*Boucle Principale du Programme*/ while(go_on){ - Controle(); + direction = Controle(direction); + Controle(direction); if (pause==1){ Timer(); Score(); Collision(); - Serpent(); + Serpent(direction); Pomme(); } } diff --git a/JEUX_SERPENT/serpent.c b/JEUX_SERPENT/serpent.c index c825d85..af194c4 100644 --- a/JEUX_SERPENT/serpent.c +++ b/JEUX_SERPENT/serpent.c @@ -4,7 +4,7 @@ #include "fonction.h" /*Input Serpent*/ -void Controle(){ +int Controle(int direction){ int t; while(ToucheEnAttente()){ t = Touche(); @@ -44,10 +44,11 @@ void Controle(){ break; } } + return direction; } /*Avancement automatique du serpent en fonction de la direction*/ -void Serpent(){ +void Serpent(int direction){ int p=0; if (direction == 1){ pos_y[0]=old_y[0]-20; @@ -73,13 +74,13 @@ void Serpent(){ } } - Update_Serpent(); + Update_Serpent(direction); Terrain(); Attendre(vitesse); } /*fonction pour mettre à jour la position du serpent*/ -void Update_Serpent(){ +void Update_Serpent(int direction){ int i=1; AfficherSprite(fond, pos_x[segment-1], pos_y[segment-1]); /*affichage de la tete en fonction de la direction du serpent*/