#include #include #include #define CYCLE 10000L /*variables*/ /*timer*/ int seconde=0; int minute=0; int seconde_actuel=0; int old_seconde=0; char timer[6]; unsigned long int suivant; /*fin de jeu*/ int go_on=1; /*serpent*/ int serpent; int x = 600; int y = 400; int direction = 4; /*1 : vers le haut , 2 : vers le bas; 3 : vers la gauche, 4 : vers la droite*/ int t; int segment=5; int i=0; int pos_x[5]; int pos_y[5]; int old_x[5]; int old_y[5]; /*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"); for (i=0 ; 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; } } } /*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(); sleep(1); } /*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; DessinerScene(); /*Boucle Principale du Programme*/ while(go_on){ Timer(); Controle(); Serpent(); } /* fermeture de la fenêtre si ECHAP pressé*/ FermerGraphique(); return EXIT_SUCCESS; }