From f72d72fa8e436325c4aa7344df75d719618e8081 Mon Sep 17 00:00:00 2001 From: keraudre <yann.keraudren@etu-upec.fr> Date: Mon, 11 Dec 2023 16:19:17 +0100 Subject: [PATCH] maj --- snake/deplacement.c | 114 +++++++++++++++++++++---------------------- snake/deplacement.h | 8 +++ snake/fenetre.c | 7 ++- snake/fenetre.h | 2 +- snake/lancement | Bin 16176 -> 0 bytes snake/main.c | 35 ++++++++++++- snake/search_queue.c | 31 ++++++++++++ snake/search_tete.c | 38 +++++++++++++++ snake/search_tete.h | 0 snake/update_queue.c | 4 +- 10 files changed, 173 insertions(+), 66 deletions(-) create mode 100644 snake/deplacement.h delete mode 100755 snake/lancement create mode 100644 snake/search_queue.c create mode 100644 snake/search_tete.c create mode 100644 snake/search_tete.h diff --git a/snake/deplacement.c b/snake/deplacement.c index 8f8d690..a4d09e6 100644 --- a/snake/deplacement.c +++ b/snake/deplacement.c @@ -10,61 +10,8 @@ #include "update_queue.h" -int** deplacement(int* p, int timer) { +void deplacement(int** p, int* tete, int* queue) { - int i, j; - - int* tete = NULL, queue = NULL; - - char sens; - - - - - - /* avancement du serpent */ - - - - - - - - - - - - - - - - /* alloacation des tableau tete et queue qui prendront les coordonnées de la tête et la queue */ - - tete = malloc(2*sizeof(short int)); - - queue = malloc(2*sizeof(short int)); - - - /* recherche de la tête et la queue dans le tableau */ - - for ( i = 0; i < LIGNES; i++) { - - for ( j = 0; j < COLONNES; j++) { - - if ( p[i][j] == -1) { - - tete[0] = i; - tete[1] = j; - - } - if ( p[i][j] == -2) { - - queue[0] = i; - queue[1] = j; - - } - } - } @@ -81,6 +28,8 @@ int** deplacement(int* p, int timer) { p[queue[0]][queue[1]] = 0; tete[1] = tete[1] - 1; + + sens = "gauche"; } @@ -94,9 +43,11 @@ int** deplacement(int* p, int timer) { tete[1] = tete[1] + 1; + sens = "droite"; + } - if (Touch() == XK_Up") { + if (Touch() == XK_Up) { p[tete[0]][tete[1]] = 0; @@ -106,9 +57,10 @@ int** deplacement(int* p, int timer) { tete[0] = tete[0] - 1; + sens = "haut"; } - if (Touch() == "XK_down") { + if (Touch() == XK_down) { p[tete[0]][tete[1]] = 0; @@ -116,7 +68,55 @@ int** deplacement(int* p, int timer) { p[queue[0]][queue[1]] = 0; - tete[0] = tete[0] + 1; + tete[0] = tete[0] + 1; + + sens = "bas"; + + } + + else { + + if ( strcmp(sens,"bas") == 1) { + + p[tete[0] + 1][tete[1]] = 1; + + p[queue[0]][queue[1]] = 0; + + tete[0] = tete[0] + 1; + } + + if ( strcmp(sens, "haut") ==1) { + + p[tete[0] - 1][tete[1]] = 1; + + p[queue[0]][queue[1]] = 0; + + tete[0] = tete[0] -1; + + } + + if ( strcmp(sens, "droite") ==1) { + + p[tete[0]][tete[1] + 1] = 1; + + p[queue[0]][queue[1]] = 0; + + tete[1] = tete[1] + 1; + + } + + if ( strcmp(sens, "gauche") ==1) { + + p[tete[0]][tete[1] - 1] = 1; + + p[queue[0]][queue[1]] = 0; + + tete[1] = tete[1] - 1; + + } + + + /* mise à jour de la position de queue dans le plateau */ diff --git a/snake/deplacement.h b/snake/deplacement.h new file mode 100644 index 0000000..06b657c --- /dev/null +++ b/snake/deplacement.h @@ -0,0 +1,8 @@ + + +#ifndef DEPLACEMENT_H +#define DEPLACEMENT_H + +void deplacement (int** p, int* tete, int* queue); + +#endif /* DEPLACEMENT_H */ diff --git a/snake/fenetre.c b/snake/fenetre.c index 4bb7689..37d3cff 100755 --- a/snake/fenetre.c +++ b/snake/fenetre.c @@ -8,9 +8,11 @@ #include "plateau_init.h" #include "ajout_score.c" +#define CYCLE 1000000L -int start (void) { + +void start (void) { couleur green, grey, yellow, red, black, white; @@ -18,7 +20,6 @@ int start (void) { int i, j; - char* texte1 = "espace = lancer"; char* texte2 = "espace = pause"; @@ -142,8 +143,6 @@ int start (void) { - - return EXIT_SUCCESS; } diff --git a/snake/fenetre.h b/snake/fenetre.h index 71bb7b5..00a40b6 100644 --- a/snake/fenetre.h +++ b/snake/fenetre.h @@ -6,6 +6,6 @@ #define FENETRE_H -int start (void); +void start (void); #endif /* FENETRE_H */ diff --git a/snake/lancement b/snake/lancement deleted file mode 100755 index 72b5952a7d1fc4ad283e7046e827a080000bceab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16176 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 F2LP#Iv?l-n diff --git a/snake/main.c b/snake/main.c index c9dea1b..4a3dba1 100644 --- a/snake/main.c +++ b/snake/main.c @@ -3,6 +3,9 @@ #include <graph.h> #include "fenetre.h" #include "plateau_init.h" +#include "search_tete.h" +#include "search_queue.h" +#include "deplacement.h" @@ -10,7 +13,28 @@ int main(void) { - InitialiserGraphique(); + short int jeu = 1; + + int** plateau = plateau_init(); + + unsigned long suivant; + + int* tete = NULL, queue = NULL; + + char sens = "bas"; + + + /* alloacation des tableau tete et queue qui prendront les coordonnées de la tête et la queue */ + + tete = malloc(2*sizeof(short int)); + + queue = malloc(2*sizeof(short int)); + + + + suiavnt = Microsencondes() + CYCLE; + + InitialiserGraphique(); /*initialisation de la taille de la fenetre de jeux*/ @@ -19,6 +43,15 @@ int main(void) { start(); + while ( jeu = 1) { + + if (Microsecondes() > suivant) { + + + deplacement(plateau, tete, queue); + + + } Touche(); diff --git a/snake/search_queue.c b/snake/search_queue.c new file mode 100644 index 0000000..6d79009 --- /dev/null +++ b/snake/search_queue.c @@ -0,0 +1,31 @@ + + +#include <stdlib.h> +#include <stdio.h> +#include "plateau_init.h" + + +int* search_queue( int* queue, int** p) { + + int i, j; + + /* recherche de la tête et la queue dans le tableau */ + + for ( i = 0; i < LIGNES; i++) { + + for ( j = 0; j < COLONNES; j++) { + + if ( p[i][j] == -2) { + + queue[0] = i; + queue[1] = j; + + p[i][j] = 1; + + } + } + } + + return queue; + +} diff --git a/snake/search_tete.c b/snake/search_tete.c new file mode 100644 index 0000000..735e39b --- /dev/null +++ b/snake/search_tete.c @@ -0,0 +1,38 @@ + + +#include <stdlib.h> +#include <stdio.h> +#include "plateau_init.h" + + + + +int* search_tete(int* tete, int** p) { + + + int i, j; + + + + + /* recherche de la tête et la queue dans le tableau */ + + for ( i = 0; i < LIGNES; i++) { + + for ( j = 0; j < COLONNES; j++) { + + if ( p[i][j] == -1) { + + tete[0] = i; + tete[1] = j; + + p[i][j] = 1; + + } + } + } + + return tete; + +} + diff --git a/snake/search_tete.h b/snake/search_tete.h new file mode 100644 index 0000000..e69de29 diff --git a/snake/update_queue.c b/snake/update_queue.c index 3b08b93..7496d58 100644 --- a/snake/update_queue.c +++ b/snake/update_queue.c @@ -7,7 +7,7 @@ #include <stdio.h> -int maj_queue(int* queue, int** p) { +void maj_queue(int* queue, int** p) { if ( p[queue[0] +1 ][queue[1]] == 1 ) { @@ -31,7 +31,5 @@ int maj_queue(int* queue, int** p) { queue[1] = queue[1] -1; } - - return EXIT_SUCCESS; }