From 1b79b7279248ee0a12543eb923596833a1e1b704 Mon Sep 17 00:00:00 2001 From: brigitte Date: Thu, 30 Nov 2023 09:59:11 +0100 Subject: [PATCH] reglage bug pomme --- JEUX_SERPENT/fond.png | Bin 0 -> 4229 bytes JEUX_SERPENT/main.c | 325 ++++++++++++++++++++---------------------- 2 files changed, 158 insertions(+), 167 deletions(-) create mode 100644 JEUX_SERPENT/fond.png diff --git a/JEUX_SERPENT/fond.png b/JEUX_SERPENT/fond.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7c1fab5523ea2c08761e0089a12a6bdd3b25a9 GIT binary patch literal 4229 zcmeHLe{2(V6u%DG#^!(t7&Ac5L&yeP@2>6I-eqNsc5FoobDKB}3fH@Dw+n6WXm4AG zB7z3oKm-I6$>Ky1<%cu4@k`W!K=>I&MFLR>0uchr51sr0T zeed($_w#+=sWOM}O8ROa@%-J`K&cmYd8 zZ_J?Cz%X=@6AZnuUZ7h9<6)3B8*OA5`smN4APtYL40 zAuW!^`T}I_ldS*P5~9)Dp9OAD5pFUvw9#wZ_-S>$#)aU~@CBtOEiNd3GOj>3K8haQ+&@_zo9epLg~4;NK#T~cR1IeO6A z2_FuAwvyh}n!3jF1ZiBhaQ5E4Zyeb4%95tWevJ$9JBIUD&ab~rjBKN_nqRwlZs+jp z*BsZ*8YZkeX4yO@v10D`lSiKSj@mss@%e9-r1xf)Ek8C^n6h%^jiEDd-?;gQ@krBW zU;oM8J5hfCYbYElESf&@EdI{vEgAK=DNDfkGQNyikpYuzR{n3sdh%nu1T{lmW}U|As+1CmejI)+ixXr28%QMsV%2& z9n2hXs?VCrAKJ!k|Mlm-=jJCiwr+3v7W3u0Ki;wJQ2Ozfv>7vYWTXB&e>5aEJal^1 zu)|YJ4qaMs+k9`sSXxPK-LmWRZMWv!!`5%yd@)T?l9vw7eBsQ6Gkd=}+vfQ0%Jrnx zp-}UX+=ejJU_>e{Q_DP)IYAB>c~SNvVDkl~u3%16jxc!UNK#c-jp5Rw#Cl7qO0$$RBW)j<$2kGJO+P&}SEd@vki z0r;RIyh1TXnhFG{&K_YkzY0KN3EkHtTw0?bsu+dk%8-Eat58rK(HTM%;{Hly$geL) z6e#3J0Wb|iRHjQv?Zm}BGz!Y4fTDW=*&9T^ z@o+9#sMOMPyBvfTpA%(45;+EGE)o;t}a(1uMz=kcIV`vPBr3Af|>Ss7l`7IV%lH z1Sq>`_tF+oBrUAT3Q#tI^!fxlY2!sJB*I#)f?0zX1zulm5jK}?o{m5~n9QYnB+R9<6~vC)j#Y_`!hv(0KXu^mR!P$&$Q zsA1~8Q=iecg@eTavAkBN0HEt(Eu1ricvTLS%Cg@<#Jg^M+5^W)9svxl~smZ5Mzrl3_?Q{ZGQE*n%moXSA<4hx!*M zIl4ioCIfy^9W*cKg;cy5#yEp~ALJ*t7Y{N7j`sxV7Qa1o_0ZKV2D)Y3Q(ZlDb&G*+ z8TVAz|3+6z$8`z?;jf@-xGXg@fz@!)O7uQi;L@*L*j?xD`5^UG3a7*EEOnqZ4A`3b zM?smSx;^ b_2Srb4?-iU4 literal 0 HcmV?d00001 diff --git a/JEUX_SERPENT/main.c b/JEUX_SERPENT/main.c index b5e4aa9..e987e7a 100644 --- a/JEUX_SERPENT/main.c +++ b/JEUX_SERPENT/main.c @@ -5,201 +5,192 @@ #include #define CYCLE 10000L -/* Variables */ +/*variables*/ -int seconde = 0; -int minute = 0; -int seconde_actuel = 0; -int old_seconde = 0; +/*timer*/ +int seconde=0; +int minute=0; +int seconde_actuel=0; +int old_seconde=0; char timer[6]; unsigned long int suivant; -int go_on = 1; +/*fin de jeu*/ +int go_on=1; +/*serpent*/ int serpent; int x = 600; int y = 400; -int direction = 4; +int direction = 4; /*1 : vers le haut , 2 : vers le bas; 3 : vers la gauche, 4 : vers la droite*/ int t; -int segment = 10; - -int i = 0; +int segment=10; +int i=0; int pos_x[60]; int pos_y[60]; int old_x[60]; int old_y[60]; -int pomme, p, pp; -int pomx[5]; -int pomy[5]; +/*variable pomme*/ +int p=0; +int pp=0; +int pomme, pommex[5], pommey[5]; +int fond; + +/*Fonction Pour créer la première scene du jeu*/ +void DessinerScene(){ + snprintf(timer,6,"%02d:%02d", minute, seconde); + ChoisirCouleurDessin(CouleurParComposante(141,199,63)); + RemplirRectangle(20,20,1160,700); + ChoisirCouleurDessin(CouleurParComposante(255,255,255)); + EcrireTexte(10,760,timer,2); + serpent=ChargerSprite("serpent.png"); + fond = ChargerSprite("fond.png"); -void GenererPomme(int indice) { - do { - pomx[indice] = ((rand() % 58) + 1) * 20; - pomy[indice] = ((rand() % 35) + 1) * 20; - } while (pomx[indice] < 20 || pomx[indice] > 1160 || pomy[indice] < 20 || pomy[indice] > 700); - - printf("Nouvelle pomme à la position : (%d, %d)\n", pomx[indice], pomy[indice]); - - AfficherSprite(pomme, pomx[indice], pomy[indice]); -} - - -void DessinerScene() { - ChoisirCouleurDessin(CouleurParComposante(0, 100, 0)); - RemplirRectangle(20, 20, 1160, 700); - - snprintf(timer, 6, "%02d:%02d", minute, seconde); - ChoisirCouleurDessin(CouleurParComposante(0, 255, 0)); - pomme = ChargerSprite("pomme.png"); - serpent = ChargerSprite("serpent.png"); - ChoisirCouleurDessin(CouleurParComposante(255, 255, 255)); - EcrireTexte(10, 760, timer, 2); - - srand(time(NULL)); - for (p = 0; p < 5; p++) { - GenererPomme(p); - } - - for (i = 0; i < segment; i++) { - AfficherSprite(serpent, x - (i * 20), y); - pos_x[i] = x - (i * 20); - pos_y[i] = y; - old_y[i] = pos_y[i]; - old_x[i] = pos_x[i]; + for (i = 0; i < segment; i++){ + AfficherSprite(serpent, x-(i*20), y); + pos_x[i]=x-(i*20); + pos_y[i]=y; + old_y[i]=pos_y[i]; + old_x[i]=pos_x[i]; + } + srand(time(NULL)); + pomme=ChargerSprite("pomme.png"); + for (p = 0; p < 5; p++) { + pommex[p] = ((rand() % (58)+1)*20); + pommey[p] = ((rand() % (35)+1)*20); + AfficherSprite(pomme, pommex[p], pommey[p]); } } +/*Fonction pour mettre à jour unuquement le timer*/ +void Update_Timer(){ + snprintf(timer,6,"%02d:%02d", minute, seconde); + ChoisirCouleurDessin(CouleurParComposante(0,0,0)); + RemplirRectangle(0,700,1200,800); + ChoisirCouleurDessin(CouleurParComposante(255,255,255)); + EcrireTexte(10,760,timer,2); +} -void Update_Timer() { - snprintf(timer, 6, "%02d:%02d", minute, seconde); - ChoisirCouleurDessin(CouleurParComposante(0, 0, 0)); - RemplirRectangle(0, 700, 1200, 800); - ChoisirCouleurDessin(CouleurParComposante(255, 255, 255)); - EcrireTexte(10, 760, timer, 2); +/*fonction pour mettre à jour la position du serpent*/ +void Update_Serpent(){ + AfficherSprite(fond, pos_x[segment-1], pos_y[segment-1]); + AfficherSprite(serpent, pos_x[0], pos_y[0]); + for (i=1 ; i1180 || pos_x[0]<20) + go_on=0; + if (pos_y[0]<0 || pos_y[0] >700) + go_on=0; +} + +/*Fonction pour calculer le temps*/ +void Timer(){ + if(Microsecondes()> suivant){ + suivant = Microsecondes()+CYCLE; + seconde_actuel = (suivant/1000000)%10; + if(seconde_actuel !=old_seconde){ + old_seconde = seconde_actuel; + if(seconde == 59){ + minute=minute+1; + seconde=0; + Update_Timer(); + }else{ + seconde = seconde+1; + Update_Timer(); + } + } + } +} + +/*Input Serpent*/ +void Controle(){ + while(ToucheEnAttente()){ + t = Touche(); + switch(t){ + case XK_Left : + direction=3; + break; + case XK_Right: + direction=4; + break; + case XK_Up: + direction=1; + break; + case XK_Down: + direction=2; + break; + case XK_Escape: + go_on=0; + break; + break; + } + } } -void Update_Serpent() { - ChoisirCouleurDessin(CouleurParComposante(0, 100, 0)); - RemplirRectangle(20, 20, 1160, 700); - AfficherSprite(serpent, pos_x[0], pos_y[0]); - - for (i = 1; i < segment; i++) { - pos_x[i] = old_x[i - 1]; - pos_y[i] = old_y[i - 1]; - AfficherSprite(serpent, pos_x[i], pos_y[i]); - } - - if (i > segment) { - pos_x[i] = 0; - pos_y[i] = 0; - segment--; - } - - old_x[0] = pos_x[0]; - old_y[0] = pos_y[0]; - - for (i = 1; i < segment; i++) { - old_x[i] = pos_x[i]; - old_y[i] = pos_y[i]; - } +/*Avancement automatique du serpent en fonction de la direction*/ +void Serpent(){ + if (direction == 1){ + pos_y[0]=old_y[0]-20; + } + if (direction == 2){ + pos_y[0]=old_y[0]+20; + } + if (direction == 3){ + pos_x[0]=old_x[0]-20; + } + if (direction == 4){ + pos_x[0]=old_x[0]+20; + } + Update_Serpent(); + Terrain(); + usleep(100000); } -void Terrain() { - if (pos_x[0] > 1180 || pos_x[0] < 20 || pos_y[0] < 20 || pos_y[0] > 700) { - go_on = 0; - ChoisirCouleurDessin(CouleurParComposante(255, 0, 0)); - EcrireTexte(500, 400, "Game Over", 2); - } +/*Apparition aléatoire des pommes*/ +void Pomme(){ + + for (pp = 0; pp < 5; ++pp) + { + AfficherSprite(pomme, pommex[pp], pommey[pp]); + } } - -void Timer() { - if (Microsecondes() > suivant) { - suivant = Microsecondes() + CYCLE; - seconde_actuel = (suivant / 1000000) % 10; - if (seconde_actuel != old_seconde) { - old_seconde = seconde_actuel; - if (seconde == 59) { - minute = minute + 1; - seconde = 0; - Update_Timer(); - } else { - seconde = seconde + 1; - Update_Timer(); - } - } - } -} - - -void Controle() { - while (ToucheEnAttente()) { - t = Touche(); - switch (t) { - case XK_Left: - direction = 3; - break; - case XK_Right: - direction = 4; - break; - case XK_Up: - direction = 1; - break; - case XK_Down: - direction = 2; - break; - case XK_Escape: - go_on = 0; - break; - case XK_p: - direction = 0; - break; - } - } -} - - -void Serpent() { - if (direction == 1) { - pos_y[0] = old_y[0] - 20; - } - if (direction == 2) { - pos_y[0] = old_y[0] + 20; - } - if (direction == 3) { - pos_x[0] = old_x[0] - 20; - } - if (direction == 4) { - pos_x[0] = old_x[0] + 20; - } - Update_Serpent(); - Terrain(); - usleep(100000); -} - - - -int main() { +/*Fonction Principale*/ +int main(){ + + /* paramétrage de la fenêtre + chargement première scène */ InitialiserGraphique(); - CreerFenetre(350, 100, 1200, 800); - EffacerEcran(CouleurParComposante(0, 0, 0)); - suivant = Microsecondes() + CYCLE; - old_seconde = (suivant / 1000000) % 10; + CreerFenetre(350,100,1200,800); + EffacerEcran(CouleurParComposante(0,0,0)); + suivant = Microsecondes()+CYCLE; + old_seconde=(suivant/1000000)%10; DessinerScene(); - while (go_on) { - Timer(); - Controle(); - Serpent(); - } - for (p = 0; p < 5; p++) { - AfficherSprite(pomme, pomx[p], pomy[p]); - } - usleep(3000000); + + /*Boucle Principale du Programme*/ + while(go_on){ + Timer(); + Controle(); + Serpent(); + Pomme(); + } + + /* fermeture de la fenêtre si ECHAP pressé*/ FermerGraphique(); - return 0; - -} \ No newline at end of file + return EXIT_SUCCESS; +}