From 890e36e764ae9732f62fe0955ed3b98461d5d89f Mon Sep 17 00:00:00 2001 From: brigitte Date: Tue, 19 Dec 2023 15:44:28 +0100 Subject: [PATCH] enlevement extern 6 --- JEUX_SERPENT/Jeux | Bin 21976 -> 21904 bytes JEUX_SERPENT/fonction.h | 21 +++++++++------------ JEUX_SERPENT/main.c | 40 ++++++++++++++++++++++++++-------------- JEUX_SERPENT/scene.c | 16 ++++++---------- JEUX_SERPENT/score.c | 3 ++- JEUX_SERPENT/serpent.c | 10 +++++----- JEUX_SERPENT/timer.c | 3 ++- 7 files changed, 50 insertions(+), 43 deletions(-) diff --git a/JEUX_SERPENT/Jeux b/JEUX_SERPENT/Jeux index afe109d74c6f505dc6d4fa4d341c7f8e9b9392ad..91bc6355b22d3cae220dcd2850da340c3153327e 100755 GIT binary patch delta 6064 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 J$uCZJ{|^GG<+%U= diff --git a/JEUX_SERPENT/fonction.h b/JEUX_SERPENT/fonction.h index 83f5b9f..4cc9e2a 100644 --- a/JEUX_SERPENT/fonction.h +++ b/JEUX_SERPENT/fonction.h @@ -6,36 +6,33 @@ extern int seconde, minute, seconde_actuel, old_seconde; extern char timer[6]; -extern unsigned long int suivant; -extern int serpent, tete_up, tete_down, tete_right, tete_left; extern int pos_x[2400], pos_y[2400], old_x[2400], old_y[2400]; -extern int pomme, pommex[5], pommey[5]; -extern int fond, Nbr; +extern int pommex[5], pommey[5]; extern char score[4]; extern int go_on; extern int go_menu; extern int pause; -extern int imageMenu; -void Pomme(); +void Pomme(int pomme); int Controle(int direction); -void Serpent(int direction, int segment); -void Update_Serpent(int direction, int segment); +void Serpent(int direction, int segment, int tete_up, int tete_down, int tete_left, int tete_right, int serpent, int fond); +void Update_Serpent(int direction, int segment, int tete_up, int tete_down, int tete_left, int tete_right, int serpent); long int Update_Vitesse(long int vitesse); int Update_Segment(int segment); void Terrain(); -void Timer(); + +void Timer(unsigned long int suivant); void Update_Timer(); -void DessinerScene(); -void Score(int segment); +void DessinerScene(int segment, int serpent, int pomme); +int Score(int segment, int Nbr); void Collision(int segment); -void MenuDeFin(); +void MenuDeFin(int Nbr); void MenuDebut(); void Attendre(long int microsecondes); diff --git a/JEUX_SERPENT/main.c b/JEUX_SERPENT/main.c index f0978e1..a4cc087 100644 --- a/JEUX_SERPENT/main.c +++ b/JEUX_SERPENT/main.c @@ -6,23 +6,21 @@ int seconde=0, minute=0, seconde_actuel, old_seconde; char timer[6]; -unsigned long int suivant; -int serpent; -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; -int pomme, pommex[5], pommey[5]; -int fond, Nbr; +int pommex[5], pommey[5]; char score[4]; int go_on=1; int go_menu=1; int pause=1; -int imageMenu; -int go_menu2=1; +int go_menu2=1; +unsigned long int suivant; +int tete_up, tete_down, tete_right, tete_left, fond, pomme, serpent; +int Nbr; +int segment=10; int direction=4; /*1 : vers le haut, 2 : vers le bas, 3 vers la gauche, 4 vers la droite*/ long int vitesse=100000; int t; @@ -36,8 +34,19 @@ int main(){ InitialiserGraphique(); CreerFenetre(350,100,1200,800); + /*chargement des sprites nécessaire pour le jeu*/ + serpent=ChargerSprite("IMG/serpent.png"); + fond=ChargerSprite("IMG/fond.png"); + tete_up = ChargerSprite("IMG/tete_up.png"); + tete_down =ChargerSprite("IMG/tete_down.png"); + tete_left = ChargerSprite("IMG/tete_left.png"); + tete_right = ChargerSprite("IMG/tete_right.png"); + pomme=ChargerSprite("IMG/pomme.png"); + + /*creation du menu du début*/ MenuDebut(); + /*choix dans le menu*/ while(go_menu2){ while(ToucheEnAttente()){ t3 = Touche(); @@ -53,32 +62,34 @@ int main(){ } } + /*creation de la scene du jeu*/ EffacerEcran(CouleurParComposante(0,0,0)); suivant=Microsecondes()+CYCLE; old_seconde=(suivant/1000000)%10; - DessinerScene(segment); + DessinerScene(segment, serpent, pomme); /*Boucle Principale du Programme*/ while(go_on){ direction = Controle(direction); vitesse = Update_Vitesse(vitesse); segment = Update_Segment(segment); + Nbr= Score(segment, Nbr); Controle(direction); if (pause==1){ - Timer(); + Timer(suivant); Collision(segment); Update_Vitesse(vitesse); Update_Segment(segment); - Serpent(direction, segment); - Score(segment); - Pomme(); + Serpent(direction, segment, tete_up, tete_down, tete_right, tete_left, serpent, fond); + Score(segment, Nbr); + Pomme(pomme); Attendre(vitesse); } } /* fermeture de la fenêtre si ECHAP pressé + Menu de Fin*/ - MenuDeFin(); + MenuDeFin(Nbr); while(go_menu){ while(ToucheEnAttente()){ @@ -90,6 +101,7 @@ int main(){ } } } + /*fermeture du programme*/ FermerGraphique(); return EXIT_SUCCESS; } \ No newline at end of file diff --git a/JEUX_SERPENT/scene.c b/JEUX_SERPENT/scene.c index 1eb6249..2e75b5a 100644 --- a/JEUX_SERPENT/scene.c +++ b/JEUX_SERPENT/scene.c @@ -11,7 +11,7 @@ void Terrain(){ } /*Fonction Pour créer la première scene du jeu*/ -void DessinerScene(int segment){ +void DessinerScene(int segment, int serpent, int pomme){ int p=0; int i=0; snprintf(timer,6,"%02d:%02d", minute, seconde); @@ -19,12 +19,7 @@ void DessinerScene(int segment){ RemplirRectangle(20,20,1160,680); ChoisirCouleurDessin(CouleurParComposante(255,255,255)); EcrireTexte(10,760,timer,2); - serpent=ChargerSprite("IMG/serpent.png"); - fond=ChargerSprite("IMG/fond.png"); - tete_up = ChargerSprite("IMG/tete_up.png"); - tete_down =ChargerSprite("IMG/tete_down.png"); - tete_left = ChargerSprite("IMG/tete_left.png"); - tete_right = ChargerSprite("IMG/tete_right.png"); + for (i = 0; i < segment; i++){ AfficherSprite(serpent, 500-(i*20), 360); @@ -34,7 +29,6 @@ void DessinerScene(int segment){ old_x[i]=pos_x[i]; } srand(time(NULL)); - pomme=ChargerSprite("IMG/pomme.png"); for (p = 0; p < 5; p++) { pommex[p] = ((rand() % (58)+1)*20); pommey[p] = ((rand() % (34)+1)*20); @@ -44,6 +38,7 @@ void DessinerScene(int segment){ /*création du menu d'accueil*/ void MenuDebut(){ + int imageMenu; imageMenu=ChargerSprite("IMG/menu1.png"); AfficherSprite(imageMenu,0,0); EcrireTexte(450,100,"JEU DU SERPENT",2); @@ -52,7 +47,8 @@ void MenuDebut(){ } /*création du Menu de Fin*/ -void MenuDeFin(){ +void MenuDeFin(int Nbr){ + int imageMenu; EffacerEcran(CouleurParComposante(0,0,0)); imageMenu=ChargerSprite("IMG/menu1.png"); AfficherSprite(imageMenu,0,0); @@ -67,7 +63,7 @@ void MenuDeFin(){ } /*Apparition aléatoire des pommes*/ -void Pomme(){ +void Pomme(int pomme){ int pp=0; for (pp = 0; pp < 5; ++pp) { AfficherSprite(pomme, pommex[pp], pommey[pp]); diff --git a/JEUX_SERPENT/score.c b/JEUX_SERPENT/score.c index b004934..6dae734 100644 --- a/JEUX_SERPENT/score.c +++ b/JEUX_SERPENT/score.c @@ -3,7 +3,7 @@ #include #include "fonction.h" -void Score(int segment){ +int Score(int segment, int Nbr){ Nbr=(segment-10)*10; snprintf(score,5,"%04d", Nbr); ChoisirCouleurDessin(CouleurParComposante(0,0,0)); @@ -11,4 +11,5 @@ void Score(int segment){ ChoisirCouleurDessin(CouleurParComposante(255,255,255)); EcrireTexte(1000,750,"Score :",2); EcrireTexte(1100,750,score,2); + return Nbr; } \ No newline at end of file diff --git a/JEUX_SERPENT/serpent.c b/JEUX_SERPENT/serpent.c index 7c1133c..f4f749e 100644 --- a/JEUX_SERPENT/serpent.c +++ b/JEUX_SERPENT/serpent.c @@ -48,7 +48,7 @@ int Controle(int direction){ } /*Avancement automatique du serpent en fonction de la direction*/ -void Serpent(int direction, int segment){ +void Serpent(int direction, int segment, int tete_up, int tete_down, int tete_left, int tete_right, int serpent, int fond){ if (direction == 1){ pos_y[0]=old_y[0]-20; } @@ -61,7 +61,8 @@ void Serpent(int direction, int segment){ if (direction == 4){ pos_x[0]=old_x[0]+20; } - Update_Serpent(direction, segment); + AfficherSprite(fond, pos_x[segment-1], pos_y[segment-1]); + Update_Serpent(direction, segment, tete_up, tete_down, tete_right, tete_left, serpent); Terrain(); } @@ -72,7 +73,6 @@ long int Update_Vitesse(long int vitesse){ if(pommex[p]==pos_x[0] && pommey[p]==pos_y[0]){ if (vitesse>20000){ vitesse=vitesse-1500; - printf("%ld\n", vitesse); } } } @@ -92,9 +92,9 @@ int Update_Segment(int segment){ } /*fonction pour mettre à jour la position du serpent*/ -void Update_Serpent(int direction, int segment){ +void Update_Serpent(int direction, int segment, int tete_up, int tete_down, int tete_left, int tete_right, int serpent){ int i=1; - AfficherSprite(fond, pos_x[segment-1], pos_y[segment-1]); + /*affichage de la tete en fonction de la direction du serpent*/ if (direction==1){ AfficherSprite(tete_up, pos_x[0], pos_y[0]); diff --git a/JEUX_SERPENT/timer.c b/JEUX_SERPENT/timer.c index b82e0d6..dfb79f1 100644 --- a/JEUX_SERPENT/timer.c +++ b/JEUX_SERPENT/timer.c @@ -5,7 +5,7 @@ #define CYCLE 100000L /*Fonction pour calculer le temps*/ -void Timer(){ +void Timer(unsigned long int suivant){ if(Microsecondes()> suivant){ suivant = Microsecondes()+CYCLE; seconde_actuel = (suivant/1000000)%10; @@ -32,6 +32,7 @@ void Update_Timer(){ EcrireTexte(10,760,timer,2); } +/*fonction afin de créer un délai (en microseconde*/ void Attendre(long int microsecondes){ long int attendre; attendre = Microsecondes()+ microsecondes;