diff --git a/#serpent.c# b/#serpent.c# new file mode 100644 index 0000000..4f06d4e --- /dev/null +++ b/#serpent.c# @@ -0,0 +1,136 @@ +#include +#include +#include +#include + +#define HAUTEUR 40 +#define LARGEUR 60 +#define CYCLE 10000L +#define SEGMENT 10 + +/*enumération des différentes direction possible*/ +enum Direction { UP=2, DOWN=3, LEFT=0, RIGHT=1 }; + +/*permet de stocker les coordonnes des segment du serpent*/ +typedef struct{ + int x, y; + } SnakePoint; + +/*permet de concevoir le graphique sur lequel le serpent se déplacera*/ +void graphique(){ + InitialiserGraphique(); + CreerFenetre(1700,950,1700,950); + couleur c, b; + b=CouleurParComposante(0,0,0); + ChoisirCouleurDessin(b); + RemplirRectangle(0,0,1750,950); + c=CouleurParComposante(111,255,94); + ChoisirCouleurDessin(c); + RemplirRectangle(100,100,1500,750); +}; + +/*Déclaration de la fonction, qui va permettre d'afficher le serpent selon la couleur de la composante*/ +void serpent(Point *snake,int taille) { + int i; + for(i=0;i0;i--){ + snake[i] = snake[i-1]; + } + /*cette partie permet de gérer les mouvement de la tete*/ + if(ToucheEnAttente()){ + if (Touche() ==XK_Left && *dir !=RIGHT){ + *dir= LEFT; + } + else if(Touche()==XK_Right && *dir != LEFT){ + *dir= RIGHT; + } + else if(Touche()==XK_Up && *dir != DOWN){ + *dir= UP; + } + else if(Touche()==XK_Down && *dir != UP){ + *dir= DOWN; + } +} + /*deplace la tete en fonction de la direction*/ + if (*dir== LEFT){ + snake[0].x -=1; + } + else if(*dir== RIGHT){ + snake[0].x +=1; + } + else if(*dir== UP){ + snake[0].y -=1; + } + else if(*dir== DOWN){ + snake[0].y +=1; + } + + if (snake[0].x < 0 || snake[0].x >= LARGEUR || snake[0].y < 0 || snake[0].y >= HAUTEUR){ + *perdu = 1; + return; + } + /*cette partie permet de verifier si le serpent a mangerla pomme a partir des coordonnes et genere une nouvelle pomme a une position aleatoire grace a rand*/ + if (snake[0].x == pomme->x && snake[0].y == pomme->y){ + pomme->x = rand() % LARGEUR; + pomme->y = rand() % HAUTEUR; + + /*permet d'augmenter la taille du serpent*/ + (*taille)++; + } +} +int main() { + + /*initialisation du jeu*/ + graphique(); + int tab[HAUTEUR][LARGEUR]; + int i,j; + int perdu = 0; + int dir= RIGHT; + SnakePoint snake[HAUTEUR * LARGEUR]; + SnakePoint pomme; + unsigned long suivant; + int g=0; + suivant=Microsecondes()+CYCLE; + + /*taille minimum du serpent au début du jeu*/ + int taille =10; + + srand(time(NULL)); + + for(int i = 0;i < taille; i++){ + snake[i].x = LARGEUR / 2; + snake[i].y = HAUTEUR / 2+1; + } + pomme.x = rand() % LARGEUR; + pomme.y = rand() % HAUTEUR; + + graphique(); + + while(1){ + if (Microsecondes()>suivant){ + g++; + suivant=Microsecondes()+CYCLE; + + } + serpent(snake, taille); + mouvement(snake, &taille, &dir, &pomme, &perdu); + } + + + if (perdu=1){ + printf("Vous avez perdu ! \n"); + FermerGraphique(); + + } + + return EXIT_SUCCESS; + +} diff --git a/graphique.c b/graphique.c deleted file mode 100644 index 8e9358d..0000000 --- a/graphique.c +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include -#include -#include - -#define H 40 -#define L 60; - -void serpent(); -void graphique(){ - InitialiserGraphique(); - CreerFenetre(1700,950,1700,950); - couleur c, b; - b=CouleurParComposante(0,0,0); - ChoisirCouleurDessin(b); - RemplirRectangle(0,0,1750,950); - c=CouleurParComposante(111,255,94); - ChoisirCouleurDessin(c); - RemplirRectangle(100,100,1500,750); - serpent(); - Touche(); - FermerGraphique(); - -} -void serpent(){ - couleur s = CouleurParComposante(255,255,0); - ChoisirCouleurDessin(s); - RemplirRectangle(100,100,25,25); -} - -int main(void){ -graphique(); - - return EXIT_SUCCESS; -} - diff --git a/graphique.c~ b/graphique.c~ deleted file mode 100644 index e761fe3..0000000 --- a/graphique.c~ +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include -#include -#include - -#define H 40 -#define L 60; - -void graphique(int n){ - couleur c; - char buf[100]; - c=CouleurParNom("green") -} -int main(void){ -graphique(); - return EXIT_SUCCESS; -} - - InitialiserGraphique(); - CreerFenetre(1700,950,1700,950); - couleur c, b; - b=CouleurParComposante(0,0,0); - ChoisirCouleurDessin(b); - RemplirRectangle(0,0,1750,950); - c=CouleurParComposante(111,255,94); - ChoisirCouleurDessin(c); - RemplirRectangle(100,100,1500,750); - Touche(); - FermerGraphique(); diff --git a/mouvement.c b/mouvement.c new file mode 100644 index 0000000..5f82fa8 --- /dev/null +++ b/mouvement.c @@ -0,0 +1,91 @@ +#include +#include +#include +#include + +#define HAUTEUR 40 +#define LARGEUR 60 + +#define CYCLE 10000L + +#define SEGMENT 25 + +/*enumération des différentes direction possible*/ +enum Direction { UP=2, DOWN=3, LEFT=0, RIGHT=1 }; + +/*permet de stocker les coordonnes des segment du serpent*/ +typedef struct{ + int x, y; + } SnakePoint; + +/*permet de concevoir le graphique sur lequel le serpent se déplacera*/ +void graphique(){ + InitialiserGraphique(); + CreerFenetre(1700,950,1700,950); + couleur c, b; + b=CouleurParComposante(0,0,0); + ChoisirCouleurDessin(b); + RemplirRectangle(0,0,1750,950); + c=CouleurParComposante(111,255,94); + ChoisirCouleurDessin(c); + RemplirRectangle(100,100,1500,750); + FermerGraphique(); + }; + +/*Déclaration de la fonction, qui va permettre d'afficher le serpent selon la couleur de la composante*/ +void serpent(Point *snake,int taille) { + int i; + for(i=0;i0;i--){ + snake[i] = snake[i-1]; + } + /*cette partie permet de gérer les mouvement de la tete*/ + if(ToucheEnAttente()){ + if (Touche() ==XK_Left && *dir !=RIGHT){ + *dir= LEFT; + } + else if(Touche()==XK_Right && *dir != LEFT){ + *dir= RIGHT; + } + else if(Touche()==XK_Up && *dir != DOWN){ + *dir= UP; + } + else if(Touche()==XK_Down && *dir != UP){ + *dir= DOWN; + } +} + /*deplace la tete en fonction de la direction*/ + if (*dir== LEFT){ + snake[0].x -=1; + } + else if(*dir== RIGHT){ + snake[0].x +=1; + } + else if(*dir== UP){ + snake[0].y -=1; + } + else if(*dir== DOWN){ + snake[0].y +=1; + } + + if (snake[0].x < 0 || snake[0].x >= LARGEUR || snake[0].y < 0 || snake[0].y >= HAUTEUR){ + *perdu = 1; + return; + } + /*cette partie permet de verifier si le serpent a mangerla pomme a partir des coordonnes et genere une nouvelle pomme a une position aleatoire grace a rand*/ + if (snake[0].x == pomme->x && snake[0].y == pomme->y){ + pomme->x = rand() % LARGEUR; + pomme->y = rand() % HAUTEUR; + + /*permet d'augmenter la taille du serpent*/ + (*taille)++; + } +} diff --git a/mouvement.c~ b/mouvement.c~ new file mode 100644 index 0000000..e69de29 diff --git a/serpent.c b/serpent.c new file mode 100644 index 0000000..12049df --- /dev/null +++ b/serpent.c @@ -0,0 +1,138 @@ +#include +#include +#include +#include + +#define HAUTEUR 40 +#define LARGEUR 60 + +#define CYCLE 10000L + +#define SEGMENT 10 + +/*enumération des différentes direction possible*/ +enum Direction { UP=2, DOWN=3, LEFT=0, RIGHT=1 }; + +/*permet de stocker les coordonnes des segment du serpent*/ +typedef struct{ + int x, y; + } SnakePoint; + +/*permet de concevoir le graphique sur lequel le serpent se déplacera*/ +void graphique(){ + InitialiserGraphique(); + CreerFenetre(1700,950,1700,950); + couleur c, b; + b=CouleurParComposante(0,0,0); + ChoisirCouleurDessin(b); + RemplirRectangle(0,0,1750,950); + c=CouleurParComposante(111,255,94); + ChoisirCouleurDessin(c); + RemplirRectangle(100,100,1500,750); +}; + +/*Déclaration de la fonction, qui va permettre d'afficher le serpent selon la couleur de la composante*/ +void serpent(Point *snake,int taille) { + int i; + for(i=0;i0;i--){ + snake[i] = snake[i-1]; + } + /*cette partie permet de gérer les mouvement de la tete*/ + if(ToucheEnAttente()){ + if (Touche() ==XK_Left && *dir !=RIGHT){ + *dir= LEFT; + } + else if(Touche()==XK_Right && *dir != LEFT){ + *dir= RIGHT; + } + else if(Touche()==XK_Up && *dir != DOWN){ + *dir= UP; + } + else if(Touche()==XK_Down && *dir != UP){ + *dir= DOWN; + } +} + /*deplace la tete en fonction de la direction*/ + if (*dir== LEFT){ + snake[0].x -=1; + } + else if(*dir== RIGHT){ + snake[0].x +=1; + } + else if(*dir== UP){ + snake[0].y -=1; + } + else if(*dir== DOWN){ + snake[0].y +=1; + } + + if (snake[0].x < 0 || snake[0].x >= LARGEUR || snake[0].y < 0 || snake[0].y >= HAUTEUR){ + *perdu = 1; + return; + } + /*cette partie permet de verifier si le serpent a mangerla pomme a partir des coordonnes et genere une nouvelle pomme a une position aleatoire grace a rand*/ + if (snake[0].x == pomme->x && snake[0].y == pomme->y){ + pomme->x = rand() % LARGEUR; + pomme->y = rand() % HAUTEUR; + + /*permet d'augmenter la taille du serpent*/ + (*taille)++; + } +} +int main() { + + /*initialisation du jeu*/ + graphique(); + int tab[HAUTEUR][LARGEUR]; + int i,j; + int perdu = 0; + int dir= RIGHT; + SnakePoint snake[HAUTEUR * LARGEUR]; + SnakePoint pomme; + unsigned long suivant; + int g=0; + suivant=Microsecondes()+CYCLE; + + /*taille minimum du serpent au début du jeu*/ + int taille =10; + + srand(time(NULL)); + + for(int i = 0;i < taille; i++){ + snake[i].x = LARGEUR / 2; + snake[i].y = HAUTEUR / 2+1; + } + pomme.x = rand() % LARGEUR; + pomme.y = rand() % HAUTEUR; + + graphique(); + + while(1){ + if (Microsecondes()>suivant){ + g++; + suivant=Microsecondes()+CYCLE; + + } + serpent(snake, taille); + mouvement(snake, &taille, &dir, &pomme, &perdu); + } + + + if (perdu=1){ + printf("Vous avez perdu ! \n"); + FermerGraphique(); + + } + + return EXIT_SUCCESS; + +} diff --git a/serpent.c~ b/serpent.c~ new file mode 100644 index 0000000..6a84e68 --- /dev/null +++ b/serpent.c~ @@ -0,0 +1,137 @@ +#include +#include +#include +#include + +#define HAUTEUR 40 +#define LARGEUR 60 + +#define CYCLE 10000L + +#define SEGMENT 25 + +/*enumération des différentes direction possible*/ +enum Direction { UP=2, DOWN=3, LEFT=0, RIGHT=1 }; + +/*permet de stocker les coordonnes des segment du serpent*/ +typedef struct{ + int x, y; + } SnakePoint; + +/*permet de concevoir le graphique sur lequel le serpent se déplacera*/ +void graphique(){ + InitialiserGraphique(); + CreerFenetre(1700,950,1700,950); + couleur c, b; + b=CouleurParComposante(0,0,0); + ChoisirCouleurDessin(b); + RemplirRectangle(0,0,1750,950); + c=CouleurParComposante(111,255,94); + ChoisirCouleurDessin(c); + RemplirRectangle(100,100,1500,750); + FermerGraphique(); + }; + +/*Déclaration de la fonction, qui va permettre d'afficher le serpent selon la couleur de la composante*/ +void serpent(Point *snake,int taille) { + int i; + for(i=0;i0;i--){ + snake[i] = snake[i-1]; + } + /*cette partie permet de gérer les mouvement de la tete*/ + if(ToucheEnAttente()){ + int touche = Touche(); + switch (touche){ + case XK_Left: + *dir= LEFT; + break; + case XK_Right: + *dir= RIGHT; + break; + case XK_Up: + *dir= UP; + break; + case XK_Down: + *dir= DOWN; + break; + } + /*deplace la tete en fonction de la direction*/ + if (*dir== LEFT){ + snake[0].x -=1; + } + else if(*dir== RIGHT){ + snake[0].x +=1; + } + else if(*dir== UP){ + snake[0].y -=1; + } + else if(*dir== DOWN){ + snake[0].y +=1; + } + + if (snake[0].x < 0 || snake[0].x >= LARGEUR || snake[0].y < 0 || snake[0].y >= HAUTEUR){ + *perdu = 1; + return; + } + /*cette partie permet de verifier si le serpent a mangerla pomme a partir des coordonnes et genere une nouvelle pomme a une position aleatoire grace a rand*/ + if (snake[0].x == pomme->x && snake[0].y == pomme->y){ + pomme->x = rand() % LARGEUR; + pomme->y = rand() % HAUTEUR; + + /*permet d'augmenter la taille du serpent*/ + (*taille)++; + } +} +} +int main() { + + /*initialisation du jeu*/ + int perdu = 0; + int dir= RIGHT; + SnakePoint snake[HAUTEUR * LARGEUR]; + SnakePoint pomme; + unsigned long suivant; + int g=0; + suivant=Microsecondes()+CYCLE; + + /*taille minimum du serpent au début du jeu*/ + int taille =3; + + srand(time(NULL)); + + for(int i = 0;i < taille; i++){ + snake[i].x = LARGEUR / 2; + snake[i].y = HAUTEUR / 2+1; + } + pomme.x = rand() % LARGEUR; + pomme.y = rand() % HAUTEUR; + + graphique(); + + while(perdu!=1){ + if (Microsecondes()>suivant){ + g++; + graphique(); + suivant=Microsecondes()+CYCLE; + } + + mouvement(snake, &taille, &dir, &pomme, &perdu); + + if (perdu){ + printf("Vous avez perdu ! \n"); + break; + } + serpent(snake, taille); + } + return EXIT_SUCCESS; + +} diff --git a/snake.c b/snake.c new file mode 100644 index 0000000..8d7c96d --- /dev/null +++ b/snake.c @@ -0,0 +1,43 @@ +#include +#include +#include +#include + +#define HAUTEUR 40 +#define LARGEUR 60 + +#define CYCLE 10000L + +#define SEGMENT 25 + +/*enumération des différentes direction possible*/ +enum Direction { UP=2, DOWN=3, LEFT=0, RIGHT=1 }; + +/*permet de stocker les coordonnes des segment du serpent*/ +typedef struct{ + int x, y; + } SnakePoint; + +/*permet de concevoir le graphique sur lequel le serpent se déplacera*/ +void graphique(){ + InitialiserGraphique(); + CreerFenetre(1700,950,1700,950); + couleur c, b; + b=CouleurParComposante(0,0,0); + ChoisirCouleurDessin(b); + RemplirRectangle(0,0,1750,950); + c=CouleurParComposante(111,255,94); + ChoisirCouleurDessin(c); + RemplirRectangle(100,100,1500,750); + FermerGraphique(); + }; + +/*Déclaration de la fonction, qui va permettre d'afficher le serpent selon la couleur de la composante*/ +void serpent(Point *snake,int taille) { + int i; + for(i=0;i +#include +#include +#include + +#define HAUTEUR 40 +#define LARGEUR 60 + +#define CYCLE 10000L + +#define SEGMENT 10 + +enum Direction { UP, DOWN, LEFT=0, RIGHT=1 }; +int dir=1; + +void graphique(int g){ + InitialiserGraphique(); + CreerFenetre(1700,950,1700,950); + couleur c, b; + b=CouleurParComposante(0,0,0); + ChoisirCouleurDessin(b); + RemplirRectangle(0,0,1750,950); + c=CouleurParComposante(111,255,94); + ChoisirCouleurDessin(c); + RemplirRectangle(100,100,1500,750); + Touche(); + FermerGraphique(); + }; + +void serpent(int tab[][LARGEUR],int taille) { + int posx_s,posy_s,i; + for(i=0;i0;i--){ + tab[i][0] = tab[i - 1][0]; + tab[i][1] = tab[i - 1][1] + } + + if(ToucheEnAttente()&&Touche()==XK_Left){ + dir=0; + } + else if(ToucheEnAttente()&&Touche()==XK_Right){ + dir=1; + } + else if(ToucheEnAttente()&&Touche()==XK_Up){ + dir=2; + } + else if(ToucheEnAttente()&&Touche()==XK_Down){ + dir=3; + } +} + +int main() { + int dir=1; + int tab[HAUTEUR][LARGEUR],g; + unsigned long suivant; + suivant=Microseconde()+CYCLE; + int taille =3; + for(int i = 0;i < taille; i++){ + tab[i][0] = LARGEUR / 2; + tab[i][1] = HAUTEUR / 2+1; + } + for(i=0;isuivant){ + g++; + graphique(g); + suivant=Microsecondes()+CYCLE; + } + while(1){ + + if (dir=0){ + tab[0][0] -=1; + break; + } + else if(dir=1){ + tab[0][0] +=1; + break; + } + else if(dir=2){ + tab[0][1] -=1; + break; + } + else if(dir=3){ + tab[0][1] +=1; + break; + + + return EXIT_SUCCESS; +} diff --git a/test.c~ b/test.c~ deleted file mode 100644 index 3530d0a..0000000 --- a/test.c~ +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include -#include - -int main (void){ - - return EXIT_SUCCESS; - }