diff --git a/archive/Suivre (copy 1).c b/archive/Suivre (copy 1).c new file mode 100644 index 0000000..7423593 --- /dev/null +++ b/archive/Suivre (copy 1).c @@ -0,0 +1,403 @@ +#include +#include +#include +#include + + +/*taille 2 de plus pour avoir les bordures du plateau de jeu*/ +#define H 42 +#define L 62 +/*initialisation des compteur(timer et deplacement du serpent*/ +#define DELTA 1000000L +#define DELTO 100L + +/*affichage du plateau de jeu en fonction du tableau*/ +void AfficheTab(int tab[H][L], int posx, int posy, int i, int j){ + couleur c; + if(tab[i][j]==0){ + c=CouleurParNom("black"); + ChoisirCouleurDessin(c); + RemplirRectangle(posx,posy,20,20); + } + + if(tab[i][j]==40){ + c=CouleurParNom("dark grey"); + ChoisirCouleurDessin(c); + RemplirRectangle(posx,posy,20,20); + c=CouleurParNom("black"); + ChoisirCouleurDessin(c); + DessinerRectangle(posx+2,posy+2,16,16); + } + if(tab[i][j]==1){ + c=CouleurParNom("dark orange"); + ChoisirCouleurDessin(c); + RemplirRectangle(posx,posy,20,20); + c=CouleurParNom("brown"); + ChoisirCouleurDessin(c); + RemplirArc(posx+5,posy+5,10,10,360,360); + } + + if(tab[i][j]==9){ + c=CouleurParNom("yellow"); + ChoisirCouleurDessin(c); + RemplirRectangle(posx,posy,20,20); + } + + if(tab[i][j]==7){ + c=CouleurParNom("brown"); + ChoisirCouleurDessin(c); + RemplirRectangle(posx,posy,20,20); + } + + if(tab[i][j]==8){ + c=CouleurParNom("green"); + ChoisirCouleurDessin(c); + RemplirRectangle(posx,posy,20,20); + } + + if(tab[i][j]==6){ + c=CouleurParNom("purple"); + ChoisirCouleurDessin(c); + RemplirRectangle(posx,posy,20,20); + } + if(tab[i][j]==30){ + c=CouleurParNom("red"); + ChoisirCouleurDessin(c); + RemplirArc(posx,posy,20,20,360,360); + } + if(tab[i][j]==50){ + c=CouleurParNom("purple"); + ChoisirCouleurDessin(c); + RemplirArc(posx,posy,20,20,360,360); + } + +} + +/*parcours du tableau pour rendu graphique*/ +void Affiche(int tab[H][L]){ + int i,j,posx=0,posy=0; + for(i=0;i<=H;i++){ + for(j=0;j<=L;j++){ + AfficheTab(tab, posx, posy, i, j); + posx=posx+20; + } + posx=0; + posy=posy+20; + } + posx=0; + posy=0; +} +int CliqueTouche(int defaut){ + switch(Touche()){ + case XK_Up: + if(defaut!=0){ + defaut=2; + return defaut; + } + case XK_Down: + if(defaut!=2){ + defaut=0; + return defaut; + } + case XK_Right: + if(defaut!=1){ + defaut=3; + return defaut; + } + case XK_Left: + if(defaut!=3){ + defaut=1; + return defaut; + } + default : + return defaut; + } +} +/*affichage du timer*/ +void DessinerTimer(int n) +{ + couleur c; + char buf[100]; + c=CouleurParNom("dark blue"); + ChoisirCouleurDessin(c); + RemplirRectangle(0,875,200,100); + c=CouleurParNom("red"); + ChoisirCouleurDessin(c); + snprintf(buf,100,"time : %d",n); + EcrireTexte(50,900,buf,2); +} + + +/*affichage du score*/ +void DessinerScore(int n){ + couleur c; + char buf[100]; + c=CouleurParNom("dark blue"); + ChoisirCouleurDessin(c); + RemplirRectangle(200,875,200,100); + c=CouleurParNom("yellow"); + ChoisirCouleurDessin(c); + snprintf(buf,100,"score : %d",n); + EcrireTexte(250,900,buf,2); +} +/*Mise en place de pastilles le plateau de jeu + en fonction de ce que l'on veut placer + */ +int Pastille(int tab[H][L],int nb,int type){ + int ia,ja; + if(nb==0){ + return 1; + } + srand(time(NULL)); + while(nb!=0){ + ia=rand()%40; + ja=rand()%60; + if(tab[ia][ja]==0){ + if(type==1){ + /*pommes*/ + tab[ia][ja]=30; + }else if(type==2){ + /*pommes pour mur*/ + tab[ia][ja]=50; + }else if(type==3){ + /*mur*/ + tab[ia][ja]=40; + } + nb=nb-1; + } + } +} +/*initialisation du plateau de jeu*/ +void init(int tab[H][L]){ + /*creation page*/ + InitialiserGraphique(); + CreerFenetre(10,10,1700,1000); + int i,j; + couleur c; + c=CouleurParNom("dark blue"); + ChoisirCouleurDessin(c); + RemplirRectangle(0,0,1700,1000); + DessinerScore(0); + DessinerTimer(0); + /*initialisation de la grille a 0(vert)*/ + for(i=1;isuivant){ + n++; + DessinerTimer(n); + suivant=Microsecondes()+DELTA; + } + + /*socre*/ + DessinerScore(point); + /*deplacement queue*/ + + if(Microsecondes()>suivant3){ + if(direc==0){ + sxmin=sxmin+1; + direc=VoirCase(tab,sxmin,symin,direc); + tab[sxmin][symin]=0; + } + if(direc==1){ + symin=symin-1; + direc=VoirCase(tab,sxmin,symin,direc); + + tab[sxmin][symin]=0; + } + if(direc==2){ + sxmin=sxmin-1; + direc=VoirCase(tab,sxmin,symin,direc); + tab[sxmin][symin]=0; + } + if(direc==3){ + symin=symin+1; + direc=VoirCase(tab,sxmin,symin,direc); + tab[sxmin][symin]=0; + } + suivant3=Microsecondes()+DELTO; + } + + /*deplacement tete*/ + if(Microsecondes()>suivant2){ + /*haut*/ + if(direction==2){ + if(VerifChemin(tab,sxmax-1,symax)==1){ + sxmax=sxmax-1; + tab[sxmax][symax]=1; + }else if(VerifChemin(tab,sxmax-1,symax)==3){ + sxmax=sxmax-1; + tab[sxmax][symax]=1; + point=point+5; + DessinerScore(point); + Pastille(tab,1,1); + }else if(VerifChemin(tab,sxmax-1,symax)==2){ + sxmax=sxmax-1; + tab[sxmax][symax]=1; + Pastille(tab,5,3); + Pastille(tab,1,2); + }else{ + fin=1; + } + } + /*droite*/ + if(direction==3){ + if(VerifChemin(tab,sxmax,symax+1)==1){ + symax=symax+1; + tab[sxmax][symax]=1; + }else if(VerifChemin(tab,sxmax,symax+1)==3){ + symax=symax+1; + tab[sxmax][symax]=1; + point=point+5; + DessinerScore(point); + Pastille(tab,1,1); + }else if(VerifChemin(tab,sxmax,symax+1)==2){ + symax=symax+1; + tab[sxmax][symax]=1;; + Pastille(tab,5,3); + Pastille(tab,1,2); + }else{ + fin=1; + } + } + /*gauche*/ + if(direction==1){ + if(VerifChemin(tab,sxmax,symax-1)==1){ + symax=symax-1; + tab[sxmax][symax]=1; + } + else if(VerifChemin(tab,sxmax,symax-1)==3){ + symax=symax-1; + tab[sxmax][symax]=1; + point=point+5; + DessinerScore(point); + Pastille(tab,1,1); + }else if(VerifChemin(tab,sxmax,symax-1)==2){ + symax=symax-1; + tab[sxmax][symax]=1;; + Pastille(tab,5,3); + Pastille(tab,1,2); + }else{ + fin=1; + } + } + /*bas*/ + if(direction==0){ + if(VerifChemin(tab,sxmax+1,symax)==1){ + sxmax=sxmax+1; + tab[sxmax][symax]=1; + } + else if(VerifChemin(tab,sxmax+1,symax)==3){ + sxmax=sxmax+1; + tab[sxmax][symax]=1; + point=point+5; + DessinerScore(point); + Pastille(tab,1,1); + }else if(VerifChemin(tab,sxmax+1,symax)==2){ + sxmax=sxmax+1; + tab[sxmax][symax]=1;; + Pastille(tab,5,3); + Pastille(tab,1,2); + }else{ + fin=1; + } + } + suivant2=Microsecondes()+DELTO; + } + + + if(fin==1){ + return EXIT_SUCCESS; + } + + } +} + + diff --git a/archive/a.out b/archive/a.out new file mode 100755 index 0000000..2fd772e Binary files /dev/null and b/archive/a.out differ