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;
 
 }