diff --git a/Snake/Afficher.c b/Snake/Afficher.c index faa4708..a66ebf4 100644 --- a/Snake/Afficher.c +++ b/Snake/Afficher.c @@ -29,17 +29,11 @@ void AfficheTab(int tab[H][L], int posx, int posy, int i, int j){ RemplirArc(posx+5,posy+5,10,10,360,360); } if(tab[i][j]==30){ - c=CouleurParNom("black"); - ChoisirCouleurDessin(c); - RemplirRectangle(posx,posy,20,20); c=CouleurParNom("red"); ChoisirCouleurDessin(c); RemplirArc(posx,posy,20,20,360,360); } - if(tab[i][j]==50){ - c=CouleurParNom("black"); - ChoisirCouleurDessin(c); - RemplirRectangle(posx,posy,20,20); + if(tab[i][j]==50){ c=CouleurParNom("purple"); ChoisirCouleurDessin(c); RemplirArc(posx,posy,20,20,360,360); diff --git a/Snake/Chemin.c b/Snake/Chemin.c index 1170877..e97a6ff 100644 --- a/Snake/Chemin.c +++ b/Snake/Chemin.c @@ -49,19 +49,6 @@ int VerifChemin(int tab[H][L], int x, int y){ } } -/*Verification sir le joueuer a gagner ou perdu*/ -int Gagne(int tab[H][L]){ - int i,j; - for(i=0;i<=H;i++){ - for(j=0;j<=L;j++){ - if(tab[i][j]==0||tab[i][j]==30||tab[i][j]==30){ - return 1; - } - } - } - return 0; -} - /*regarde la case ou la queue est pour savoir ou elle va aller ensuite*/ int VoirCase(int tab[H][L],int x, int y,int defaut){ if(tab[x][y]==9){ diff --git a/Snake/Chemin.h b/Snake/Chemin.h index 66faedb..3c95c71 100644 --- a/Snake/Chemin.h +++ b/Snake/Chemin.h @@ -15,6 +15,5 @@ int Semage(int tab[H][L], int direction, int sxmax, int symax, int *pause, int * unsigned long TempsArret(int *temoin); int VerifChemin(int tab[H][L], int x, int y); int VoirCase(int tab[H][L], int x, int y, int defaut); -int Gagne(int tab[H][L]); #endif // CHEMIN_H diff --git a/Snake/Deplacement.c b/Snake/Deplacement.c index a70ab1e..eae84da 100644 --- a/Snake/Deplacement.c +++ b/Snake/Deplacement.c @@ -2,9 +2,6 @@ #include #include #include -#include "Chemin.h" -#include "Afficher.h" -#include "ModifTab.h" /*verifie les touches cliquée par le joueur*/ int CliqueTouche(int defaut,int* pause,int* fin){ @@ -32,12 +29,11 @@ int CliqueTouche(int defaut,int* pause,int* fin){ case XK_space: if(*pause==1){ *pause=0; - return defaut; } else if(*pause==0){ *pause=1; - return defaut; } + return defaut; case XK_Escape: *fin=1; return defaut; @@ -47,29 +43,7 @@ int CliqueTouche(int defaut,int* pause,int* fin){ } /*deplacement de la queue du serpent en fonction de la trace laissée par la tete*/ -void DeplacementQueue(int tab[H][L],int* sxmin,int* symin,int* direc, int menu){ - if(menu==3){ - if(*direc==0){ - *sxmin=*sxmin+1; - *direc=VoirCase(tab,*sxmin,*symin,*direc); - tab[*sxmin][*symin]=40; - } - else if(*direc==1){ - *symin=*symin-1; - *direc=VoirCase(tab,*sxmin,*symin,*direc); - tab[*sxmin][*symin]=40; - } - else if(*direc==2){ - *sxmin=*sxmin-1; - *direc=VoirCase(tab,*sxmin,*symin,*direc); - tab[*sxmin][*symin]=40; - } - else if(*direc==3){ - *symin=*symin+1; - *direc=VoirCase(tab,*sxmin,*symin,*direc); - tab[*sxmin][*symin]=40; - } - }else{ +void DeplacementQueue(int tab[H][L],int* sxmin,int* symin,int* direc){ if(*direc==0){ *sxmin=*sxmin+1; *direc=VoirCase(tab,*sxmin,*symin,*direc); @@ -90,13 +64,11 @@ void DeplacementQueue(int tab[H][L],int* sxmin,int* symin,int* direc, int menu){ *direc=VoirCase(tab,*sxmin,*symin,*direc); tab[*sxmin][*symin]=0; } - } } /*Deplacement de la tete du seroent en fonction de la direction*/ -void DeplacementTete(int tab[H][L],int* sxmax,int* symax,int direction,int* temoin,int* fin,int* point,int mode){ - if(mode==1){ - if(direction==2){ +void DeplacementTete(int tab[H][L],int* sxmax,int* symax,int direction,int* temoin,int* fin,int* point){ + if(direction==2){ if(VerifChemin(tab,*sxmax-1,*symax)==1){ *sxmax=*sxmax-1; tab[*sxmax][*symax]=1; @@ -180,177 +152,5 @@ void DeplacementTete(int tab[H][L],int* sxmax,int* symax,int direction,int* temo }else{ *fin=1; } - }/*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*/ - }if(mode==2){ - 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); - *temoin=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); - *temoin=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); - *temoin=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); - *temoin=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; - } -/*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*/ - }}if(mode==3){ - 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); - *temoin=1; - }else if(VerifChemin(tab,*sxmax-1,*symax)==2){ - *sxmax=*sxmax-1; - tab[*sxmax][*symax]=1; - Pastille(tab,20,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); - *temoin=1; - }else if(VerifChemin(tab,*sxmax,*symax+1)==2){ - *symax=*symax+1; - tab[*sxmax][*symax]=1;; - Pastille(tab,20,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); - *temoin=1; - }else if(VerifChemin(tab,*sxmax,*symax-1)==2){ - *symax=*symax-1; - tab[*sxmax][*symax]=1;; - Pastille(tab,20,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); - *temoin=1; - }else if(VerifChemin(tab,*sxmax+1,*symax)==2){ - *sxmax=*sxmax+1; - tab[*sxmax][*symax]=1; - Pastille(tab,20,3); - Pastille(tab,1,2); - }else{ - *fin=1; - } - }} } diff --git a/Snake/Deplacement.h b/Snake/Deplacement.h index 08ec316..41e94fa 100644 --- a/Snake/Deplacement.h +++ b/Snake/Deplacement.h @@ -10,7 +10,7 @@ #define L 62 int CliqueTouche(int defaut, int *pause, int *fin); -void DeplacementQueue(int tab[H][L], int *sxmin, int *symin, int *direc,int); -void DeplacementTete(int tab[H][L], int *sxmax, int *symax, int direction, int *temoin, int *fin, int *point,int menu); +void DeplacementQueue(int tab[H][L], int *sxmin, int *symin, int *direc); +void DeplacementTete(int tab[H][L], int *sxmax, int *symax, int direction, int *temoin, int *fin, int *point); #endif // DEPLACEMENT_H diff --git a/Snake/ModifTab.c b/Snake/ModifTab.c index f9d9a14..ca2c7f5 100644 --- a/Snake/ModifTab.c +++ b/Snake/ModifTab.c @@ -5,7 +5,10 @@ #include /*initialisation du plateau de jeu*/ -void init(int tab[H][L], int mode){ +void init(int tab[H][L]){ + /*creation de la page*/ + InitialiserGraphique(); + CreerFenetre(10,10,1700,1000); int i,j; couleur c; c=CouleurParNom("dark blue"); @@ -13,7 +16,7 @@ void init(int tab[H][L], int mode){ RemplirRectangle(0,0,1700,1000); DessinerScore(0); DessinerTimer(0); - /*initialisation de la grille a 0(noir)*/ + /*initialisation de la grille a 0(vert)*/ for(i=1;i suivant3) { - DeplacementQueue(tab, pointeur_sxmin, pointeur_symin, pointeur_direc,mode); + DeplacementQueue(tab, pointeur_sxmin, pointeur_symin, pointeur_direc); suivant3 = TempsArret(pointeur_temoin); } if (Microsecondes() > suivant2) { - DeplacementTete(tab, pointeur_sxmax, pointeur_symax, direction, pointeur_temoin, pointeur_fin, pointeur_point,mode); + DeplacementTete(tab, pointeur_sxmax, pointeur_symax, direction, pointeur_temoin, pointeur_fin, pointeur_point); suivant2 = Microsecondes() + DELTO; } } - } - else if (fin == 1) { - if(Gagne(tab)==0){ - MenuFinGagne(); - }else{ - MenuFinPerdu(); - } + if (fin == 1) { + return EXIT_SUCCESS; } } } diff --git a/Snake/makefile b/Snake/makefile index 0f8c60c..35a2333 100644 --- a/Snake/makefile +++ b/Snake/makefile @@ -1,20 +1,14 @@ -exec : Chemin.o Deplacement.o Afficher.o ModifTab.o main.o Menu.o - gcc -ansi -o exec Chemin.o Deplacement.o Afficher.o ModifTab.o main.o Menu.o -lgraph -run : exec +exec : ModifTab.o Afficher.o Chemin.o Deplacement.o main.o + gcc -o exec ModifTab.o Afficher.o Chemin.o Deplacement.o main.o -lgraph +run : exec ./exec +ModifTab.o : ModifTab.c + gcc -c ModifTab.c -lgraph +Afficher.o : Afficher.c + gcc -c Afficher.c -lgraph Chemin.o : Chemin.c gcc -c Chemin.c -lgraph Deplacement.o : Deplacement.c gcc -c Deplacement.c -lgraph -Afficher.o : Afficher.c - gcc -c Afficher.c -lgraph -ModifTab.o : ModifTab.c - gcc -c ModifTab.c -lgraph main.o : main.c gcc -c main.c -lgraph -Menu.o : Menu.c - gcc -c Menu.c -lgraph -clean : - rm -f *~ - rm -f *.o - rm exec diff --git a/Snake/test.c b/Snake/test.c deleted file mode 100644 index e69de29..0000000 diff --git a/Snake_ancien/Afficher.c b/Snake_ancien/Afficher.c new file mode 100644 index 0000000..faa4708 --- /dev/null +++ b/Snake_ancien/Afficher.c @@ -0,0 +1,89 @@ +#include "Afficher.h" +#include +#include +#include + +/*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||tab[i][j]==9||tab[i][j]==7||tab[i][j]==8||tab[i][j]==6){ + 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]==30){ + c=CouleurParNom("black"); + ChoisirCouleurDessin(c); + RemplirRectangle(posx,posy,20,20); + c=CouleurParNom("red"); + ChoisirCouleurDessin(c); + RemplirArc(posx,posy,20,20,360,360); + } + if(tab[i][j]==50){ + c=CouleurParNom("black"); + ChoisirCouleurDessin(c); + RemplirRectangle(posx,posy,20,20); + 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; +} + +/*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); +} + +/*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); +} diff --git a/Snake_ancien/Afficher.h b/Snake_ancien/Afficher.h new file mode 100644 index 0000000..e52227d --- /dev/null +++ b/Snake_ancien/Afficher.h @@ -0,0 +1,17 @@ +#ifndef AFFICHER_H +#define AFFICHER_H + +#include +#include +#include +#include + +#define H 42 +#define L 62 + +void AfficheTab(int tab[H][L], int posx, int posy, int i, int j); +void Affiche(int tab[H][L]); +void DessinerScore(int n); +void DessinerTimer(int n); + +#endif // AFFICHER_H diff --git a/Snake_ancien/Afficher.o b/Snake_ancien/Afficher.o new file mode 100644 index 0000000..2ab848c Binary files /dev/null and b/Snake_ancien/Afficher.o differ diff --git a/Snake_ancien/Chemin.c b/Snake_ancien/Chemin.c new file mode 100644 index 0000000..1170877 --- /dev/null +++ b/Snake_ancien/Chemin.c @@ -0,0 +1,82 @@ +#include "Chemin.h" +#include "Deplacement.h" +#include +#include +#include + +/*seme les angles pour dire a la queue où aller*/ +int Semage(int tab[H][L],int direction,int sxmax,int symax,int* pause,int* fin){ + int newdirec; + newdirec=CliqueTouche(direction,pause,fin); + if(newdirec!=direction){ + if(newdirec==0){ + tab[sxmax][symax]=6; + } + if(newdirec==1){ + tab[sxmax][symax]=7; + } + if(newdirec==2){ + tab[sxmax][symax]=8; + } + if(newdirec==3){ + tab[sxmax][symax]=9; + } + direction=newdirec; + return direction; + } +} + +/*arrete la queue le temps que la tete avance un peu pour permettre au serpent de grandir*/ +unsigned long TempsArret(int* temoin){ + if(*temoin==1){ + *temoin=0; + return Microsecondes()+DELTI; + }else if(*temoin==0){ + return Microsecondes()+DELTO; + } +} + +/*verification de la case ou on va aller*/ +int VerifChemin(int tab[H][L], int x, int y){ + if(tab[x][y]==0){ + return 1; + }else if(tab[x][y]==30){ + return 3; + }else if(tab[x][y]==50){ + return 2; + }else{ + return 0; + } +} + +/*Verification sir le joueuer a gagner ou perdu*/ +int Gagne(int tab[H][L]){ + int i,j; + for(i=0;i<=H;i++){ + for(j=0;j<=L;j++){ + if(tab[i][j]==0||tab[i][j]==30||tab[i][j]==30){ + return 1; + } + } + } + return 0; +} + +/*regarde la case ou la queue est pour savoir ou elle va aller ensuite*/ +int VoirCase(int tab[H][L],int x, int y,int defaut){ + if(tab[x][y]==9){ + return 3; + } + else if(tab[x][y]==8){ + return 2; + } + else if(tab[x][y]==7){ + return 1; + } + else if(tab[x][y]==6){ + return 0; + } + else{ + return defaut; + } +} diff --git a/Snake_ancien/Chemin.h b/Snake_ancien/Chemin.h new file mode 100644 index 0000000..66faedb --- /dev/null +++ b/Snake_ancien/Chemin.h @@ -0,0 +1,20 @@ +#ifndef CHEMIN_H +#define CHEMIN_H + +#include +#include +#include +#include + +#define H 42 +#define L 62 +#define DELTO 1000L +#define DELTI 900000L + +int Semage(int tab[H][L], int direction, int sxmax, int symax, int *pause, int *fin); +unsigned long TempsArret(int *temoin); +int VerifChemin(int tab[H][L], int x, int y); +int VoirCase(int tab[H][L], int x, int y, int defaut); +int Gagne(int tab[H][L]); + +#endif // CHEMIN_H diff --git a/Snake_ancien/Chemin.o b/Snake_ancien/Chemin.o new file mode 100644 index 0000000..0482372 Binary files /dev/null and b/Snake_ancien/Chemin.o differ diff --git a/Snake_ancien/Deplacement.c b/Snake_ancien/Deplacement.c new file mode 100644 index 0000000..a70ab1e --- /dev/null +++ b/Snake_ancien/Deplacement.c @@ -0,0 +1,356 @@ +#include "Deplacement.h" +#include +#include +#include +#include "Chemin.h" +#include "Afficher.h" +#include "ModifTab.h" + +/*verifie les touches cliquée par le joueur*/ +int CliqueTouche(int defaut,int* pause,int* fin){ + 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; + } + case XK_space: + if(*pause==1){ + *pause=0; + return defaut; + } + else if(*pause==0){ + *pause=1; + return defaut; + } + case XK_Escape: + *fin=1; + return defaut; + default : + return defaut; + } +} + +/*deplacement de la queue du serpent en fonction de la trace laissée par la tete*/ +void DeplacementQueue(int tab[H][L],int* sxmin,int* symin,int* direc, int menu){ + if(menu==3){ + if(*direc==0){ + *sxmin=*sxmin+1; + *direc=VoirCase(tab,*sxmin,*symin,*direc); + tab[*sxmin][*symin]=40; + } + else if(*direc==1){ + *symin=*symin-1; + *direc=VoirCase(tab,*sxmin,*symin,*direc); + tab[*sxmin][*symin]=40; + } + else if(*direc==2){ + *sxmin=*sxmin-1; + *direc=VoirCase(tab,*sxmin,*symin,*direc); + tab[*sxmin][*symin]=40; + } + else if(*direc==3){ + *symin=*symin+1; + *direc=VoirCase(tab,*sxmin,*symin,*direc); + tab[*sxmin][*symin]=40; + } + }else{ + if(*direc==0){ + *sxmin=*sxmin+1; + *direc=VoirCase(tab,*sxmin,*symin,*direc); + tab[*sxmin][*symin]=0; + } + else if(*direc==1){ + *symin=*symin-1; + *direc=VoirCase(tab,*sxmin,*symin,*direc); + tab[*sxmin][*symin]=0; + } + else if(*direc==2){ + *sxmin=*sxmin-1; + *direc=VoirCase(tab,*sxmin,*symin,*direc); + tab[*sxmin][*symin]=0; + } + else if(*direc==3){ + *symin=*symin+1; + *direc=VoirCase(tab,*sxmin,*symin,*direc); + tab[*sxmin][*symin]=0; + } + } +} + +/*Deplacement de la tete du seroent en fonction de la direction*/ +void DeplacementTete(int tab[H][L],int* sxmax,int* symax,int direction,int* temoin,int* fin,int* point,int mode){ + if(mode==1){ + 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); + *temoin=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); + *temoin=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); + *temoin=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); + *temoin=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; + } + }/*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*/ + }if(mode==2){ + 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); + *temoin=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); + *temoin=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); + *temoin=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); + *temoin=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; + } +/*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*/ + }}if(mode==3){ + 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); + *temoin=1; + }else if(VerifChemin(tab,*sxmax-1,*symax)==2){ + *sxmax=*sxmax-1; + tab[*sxmax][*symax]=1; + Pastille(tab,20,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); + *temoin=1; + }else if(VerifChemin(tab,*sxmax,*symax+1)==2){ + *symax=*symax+1; + tab[*sxmax][*symax]=1;; + Pastille(tab,20,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); + *temoin=1; + }else if(VerifChemin(tab,*sxmax,*symax-1)==2){ + *symax=*symax-1; + tab[*sxmax][*symax]=1;; + Pastille(tab,20,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); + *temoin=1; + }else if(VerifChemin(tab,*sxmax+1,*symax)==2){ + *sxmax=*sxmax+1; + tab[*sxmax][*symax]=1; + Pastille(tab,20,3); + Pastille(tab,1,2); + }else{ + *fin=1; + } + }} +} diff --git a/Snake_ancien/Deplacement.h b/Snake_ancien/Deplacement.h new file mode 100644 index 0000000..08ec316 --- /dev/null +++ b/Snake_ancien/Deplacement.h @@ -0,0 +1,16 @@ +#ifndef DEPLACEMENT_H +#define DEPLACEMENT_H + +#include +#include +#include +#include + +#define H 42 +#define L 62 + +int CliqueTouche(int defaut, int *pause, int *fin); +void DeplacementQueue(int tab[H][L], int *sxmin, int *symin, int *direc,int); +void DeplacementTete(int tab[H][L], int *sxmax, int *symax, int direction, int *temoin, int *fin, int *point,int menu); + +#endif // DEPLACEMENT_H diff --git a/Snake_ancien/Deplacement.o b/Snake_ancien/Deplacement.o new file mode 100644 index 0000000..bec87a9 Binary files /dev/null and b/Snake_ancien/Deplacement.o differ diff --git a/Snake/Menu.c b/Snake_ancien/Menu.c similarity index 100% rename from Snake/Menu.c rename to Snake_ancien/Menu.c diff --git a/Snake/Menu.h b/Snake_ancien/Menu.h similarity index 100% rename from Snake/Menu.h rename to Snake_ancien/Menu.h diff --git a/Snake_ancien/Menu.o b/Snake_ancien/Menu.o new file mode 100644 index 0000000..0b88349 Binary files /dev/null and b/Snake_ancien/Menu.o differ diff --git a/Snake_ancien/ModifTab.c b/Snake_ancien/ModifTab.c new file mode 100644 index 0000000..f9d9a14 --- /dev/null +++ b/Snake_ancien/ModifTab.c @@ -0,0 +1,81 @@ +#include "ModifTab.h" +#include "Afficher.h" +#include +#include +#include + +/*initialisation du plateau de jeu*/ +void init(int tab[H][L], int mode){ + 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(noir)*/ + for(i=1;i +#include +#include +#include + +#define H 42 +#define L 62 + +int Pastille(int tab[H][L], int nb_de_pastilles, int type_pastille); +void init(int tab[H][L],int); + +#endif // MODIFTAB_H diff --git a/Snake_ancien/ModifTab.o b/Snake_ancien/ModifTab.o new file mode 100644 index 0000000..1c74933 Binary files /dev/null and b/Snake_ancien/ModifTab.o differ diff --git a/Snake_ancien/exec b/Snake_ancien/exec new file mode 100755 index 0000000..c3c92aa Binary files /dev/null and b/Snake_ancien/exec differ diff --git a/Snake_ancien/main.c b/Snake_ancien/main.c new file mode 100644 index 0000000..44e9f4c --- /dev/null +++ b/Snake_ancien/main.c @@ -0,0 +1,65 @@ +#include +#include +#include +#include + +#include "Afficher.h" +#include "ModifTab.h" +#include "Deplacement.h" +#include "Chemin.h" +#include "Menu.h" + +#define DELTA 1000000L; +#define DELTO 1000L +#define DELTI 900000L + +int main(void) { + int tab[H][L], direction = 0, temoin = 0, direc = 0, pause = 1,mode=0; + int sxmin = 17, symin = 30, sxmax = 27, symax = 30, fin = 0, point = 0, Compteur_Temps = 0; + int *pointeur_pause = &pause; + int *pointeur_sxmin = &sxmin; + int *pointeur_symin = &symin; + int *pointeur_direc = &direc; + int *pointeur_temoin = &temoin; + int *pointeur_sxmax = &sxmax; + int *pointeur_symax = &symax; + int *pointeur_fin = &fin; + int *pointeur_point = &point; + unsigned long suivant = Microsecondes() + DELTA; + unsigned long suivant2 = Microsecondes() + DELTO; + unsigned long suivant3 = Microsecondes() + DELTO; + InitEcran(); + mode=MenuDebut(); + init(tab,mode); + + while (1) { + if(fin!=1){ + Affiche(tab); + if (ToucheEnAttente() == 1) { + direction = Semage(tab, direction, sxmax, symax, pointeur_pause, pointeur_fin); + } + if (pause == 1) { + if (Microsecondes() > suivant) { + Compteur_Temps++; + DessinerTimer(Compteur_Temps); + suivant = Microsecondes() + DELTA; + } + if (Microsecondes() > suivant3) { + DeplacementQueue(tab, pointeur_sxmin, pointeur_symin, pointeur_direc,mode); + suivant3 = TempsArret(pointeur_temoin); + } + if (Microsecondes() > suivant2) { + DeplacementTete(tab, pointeur_sxmax, pointeur_symax, direction, pointeur_temoin, pointeur_fin, pointeur_point,mode); + suivant2 = Microsecondes() + DELTO; + } + } + } + else if (fin == 1) { + if(Gagne(tab)==0){ + MenuFinGagne(); + }else{ + MenuFinPerdu(); + } + } + } +} diff --git a/Snake_ancien/main.o b/Snake_ancien/main.o new file mode 100644 index 0000000..a8ea7ae Binary files /dev/null and b/Snake_ancien/main.o differ diff --git a/Snake_ancien/makefile b/Snake_ancien/makefile new file mode 100644 index 0000000..0f8c60c --- /dev/null +++ b/Snake_ancien/makefile @@ -0,0 +1,20 @@ +exec : Chemin.o Deplacement.o Afficher.o ModifTab.o main.o Menu.o + gcc -ansi -o exec Chemin.o Deplacement.o Afficher.o ModifTab.o main.o Menu.o -lgraph +run : exec + ./exec +Chemin.o : Chemin.c + gcc -c Chemin.c -lgraph +Deplacement.o : Deplacement.c + gcc -c Deplacement.c -lgraph +Afficher.o : Afficher.c + gcc -c Afficher.c -lgraph +ModifTab.o : ModifTab.c + gcc -c ModifTab.c -lgraph +main.o : main.c + gcc -c main.c -lgraph +Menu.o : Menu.c + gcc -c Menu.c -lgraph +clean : + rm -f *~ + rm -f *.o + rm exec