#include #include #include #include #define H 40 #define L 60 #define DELTA 1000000L void Affiche(int tab[H][L], int posx, int posy, int i, int j){ couleur c; if(tab[i][j]==0){ c=CouleurParNom("green"); ChoisirCouleurDessin(c); RemplirRectangle(posx,posy,20,20); } if(tab[i][j]==1){ c=CouleurParNom("yellow"); ChoisirCouleurDessin(c); RemplirRectangle(posx,posy,20,20); } } void DessinerScene(int n) { couleur c; char buf[100]; c=CouleurParNom("white"); ChoisirCouleurDessin(c); RemplirRectangle(0,850,200,100); c=CouleurParNom("black"); ChoisirCouleurDessin(c); snprintf(buf,100,"time : %d",n); EcrireTexte(50,900,buf,2); } int main(void){ /*partie graphique*/ InitialiserGraphique(); CreerFenetre(10,10,1700,1000); couleur c; c=CouleurParNom("green"); ChoisirCouleurDessin(c); int tab[H][L], haut=0,gauche=0,droite=0,bas=0; int i,j,posx=0,posy=0,n=0,sxmin=0,symin=1,sxmax=10,symax=1; unsigned long suivant,suivant2; suivant2=Microsecondes()+DELTA; suivant=Microsecondes()+DELTA; /*initialisation de la grille a 0(vert)*/ for(i=0;isuivant){ n++; DessinerScene(n); suivant=Microsecondes()+DELTA; } /*deplacements du serpent*/ if(bas==1){ if(Microsecondes()>suivant2){ sxmax=sxmax+1; tab[sxmax][symax]=1; tab[sxmin][symin]=0; sxmin=sxmin+1; suivant2=Microsecondes()+DELTA; } } else if(haut==1){ if(Microsecondes()>suivant2){ sxmax=sxmax-1; tab[sxmax][symax]=1; tab[sxmin][symin]=0; sxmin=sxmin-1; suivant2=Microsecondes()+DELTA; } } else if(gauche==1){ if(Microsecondes()>suivant2){ symax=symax-1; tab[sxmax][symax]=1; tab[sxmin][symin]=0; symin=symin-1; suivant2=Microsecondes()+DELTA; } } else if(droite==1){ if(Microsecondes()>suivant2){ symax=symax+1; tab[sxmax][symax]=1; tab[sxmin][symin]=0; symin=symin+1; suivant2=Microsecondes()+DELTA; } } if(ToucheEnAttente()&&Touche()==XK_Left){ haut=0; bas=0; droite=0; gauche=1; } if(ToucheEnAttente()&&Touche()==XK_Right){ haut=0; bas=0; droite=1; gauche=0; } if(ToucheEnAttente()&&Touche()==XK_Up){ haut=1; bas=0; droite=0; gauche=0; } if(ToucheEnAttente()&&Touche()==XK_Down){ haut=0; bas=1; droite=0; gauche=0; } /*affichage du tableau pour rendu graphique*/ for(i=0;i