diff --git a/snake/Makefile b/snake/Makefile
index 0b05061..8b4dd61 100755
--- a/snake/Makefile
+++ b/snake/Makefile
@@ -8,6 +8,7 @@ but : run
 
 OFILES = plateau_init.o \
 	 fenetre.o \
+	 deplacement.o \
 	 main.o
 
 CC = gcc
@@ -16,11 +17,13 @@ CFLAGS = -ansi -pedantic -lgraph
 
 ### REGLES ESSENTIELLES ###
 
-plateau_init.o : plateau_init.h
+plateau_init.o : plateau_init.h 
 
 fenetre.o : fenetre.h plateau_init.h
 
-main.o : main.c fenetre.h
+deplacement.o : deplacement.h
+
+main.o : main.c fenetre.h deplacement.h
 
 
 ### COMMANDES ###
diff --git a/snake/deplacement.c b/snake/deplacement.c
index a4d09e6..2e7f03f 100644
--- a/snake/deplacement.c
+++ b/snake/deplacement.c
@@ -5,14 +5,23 @@
 
 #include <stdlib.h>
 #include <stdio.h>
-#include <graphe.h> 
+#include <graph.h> 
 #include "plateau_init.h"
 #include "update_queue.h"
+#include "deplacement.h"
 
 
-void deplacement(int** p, int* tete, int* queue)  {
 
-  
+
+
+void deplacement (struct adresse* pointeur, char* sens)  {
+
+
+  int** plateau = pointeur -> plateau;
+
+  unsigned char* tete = pointeur -> tete;
+
+  unsigned char* queue = pointeur -> queue; 
 
 		
   /* affectations des commandes aux touches du jeu */
@@ -21,95 +30,95 @@ void deplacement(int** p, int* tete, int* queue)  {
 
     if (Touche() == XK_Left) {
       
-      p[tete[0]][tete[1]] = 0;
+      plateau[tete[0]][tete[1]] = 0;
 
-      p[tete[0]][tete[1] - 1] = 1;
+      plateau[tete[0]][tete[1] - 1] = 1;
 
-      p[queue[0]][queue[1]] = 0;
+      plateau[queue[0]][queue[1]] = 0;
 
       tete[1] = tete[1] - 1;
 
-      sens = "gauche";
+      *sens = "gauche";
 	
     }
 
     if (Touch() == XK_Right)  {
 
-      p[tete[0]][tete[1]] = 0;
+      plateau[tete[0]][tete[1]] = 0;
 
-      p[tete[0]][tete[1] + 1] = 1;
+      plateau[tete[0]][tete[1] + 1] = 1;
 
-      p[queue[0]][queue[1]] = 0;
+      plateau[queue[0]][queue[1]] = 0;
 
       tete[1] = tete[1] + 1;
 
-      sens = "droite";
+      *sens = "droite";
 
     }
 
     if (Touch() == XK_Up)  {
 
-      p[tete[0]][tete[1]] = 0;
+      plateau[tete[0]][tete[1]] = 0;
 
-      p[tete[0] - 1][tete[1]] = 1;
+      plateau[tete[0] - 1][tete[1]] = 1;
 
-      p[queue[0]][queue[1]] = 0;
+      plateau[queue[0]][queue[1]] = 0;
 
       tete[0] = tete[0] - 1;
 
-      sens = "haut";
+      *sens = "haut";
     }
 
-    if (Touch() == XK_down)  {
+    if (Touch() == XK_Down)  {
 
-      p[tete[0]][tete[1]] = 0;
+      plateau[tete[0]][tete[1]] = 0;
 
-      p[tete[0] + 1][tete[1]] = 1;
+      plateau[tete[0] + 1][tete[1]] = 1;
 
-      p[queue[0]][queue[1]] = 0;
+      plateau[queue[0]][queue[1]] = 0;
 
       tete[0] = tete[0] + 1;
 
-      sens = "bas";
+      *sens = "bas";
 
     }
 
     else  {
 
-      if ( strcmp(sens,"bas") == 1)  {
+      if ( strcmp(*sens,"bas") == 1)  {
 
-	p[tete[0] + 1][tete[1]] = 1;
+	plateau[tete[0] + 1][tete[1]] = 1;
 
-	p[queue[0]][queue[1]] = 0;
+	plateau[queue[0]][queue[1]] = 0;
 
 	tete[0] = tete[0] + 1;
       }
 
-      if ( strcmp(sens, "haut") ==1)  {
+      if ( strcmp(*sens, "haut") ==1)  {
 
-	p[tete[0] - 1][tete[1]] = 1;
+	plateau[tete[0] - 1][tete[1]] = 1;
 
-	p[queue[0]][queue[1]] = 0;
+	plateau[queue[0]][queue[1]] = 0;
 
 	tete[0] = tete[0] -1;
 
       }
 
-      if ( strcmp(sens, "droite") ==1)  {
+      if ( strcmp(*sens, "droite") ==1)  {
 
-	p[tete[0]][tete[1] + 1] = 1;
+	plateau[tete[0]][tete[1] + 1] = 1;
 
-	p[queue[0]][queue[1]] = 0;
+	plateau[queue[0]][queue[1]] = 0;
 
 	tete[1] = tete[1] + 1;
 
       }
 
-      if ( strcmp(sens, "gauche") ==1)  {
+      if ( strcmp(*sens, "gauche") ==1)  {
 
-	p[tete[0]][tete[1] - 1] = 1;
+	plateau[tete[0]][tete[1] - 1] = 1;
 
-	p[queue[0]][queue[1]] = 0;
+	plateau[queue[0]][queue[1]] = 0;
 
 	tete[1] = tete[1] - 1;
 
@@ -120,12 +129,11 @@ void deplacement(int** p, int* tete, int* queue)  {
       
     /* mise à jour de la position de queue dans le plateau */
     
-    maj_queue(queue, p);
+    maj_queue(queue, plateau);
     
     }
   }
 
-  return p;
 
 }
 
diff --git a/snake/deplacement.h b/snake/deplacement.h
index 06b657c..94c0cc4 100644
--- a/snake/deplacement.h
+++ b/snake/deplacement.h
@@ -3,6 +3,6 @@
 #ifndef DEPLACEMENT_H
 #define DEPLACEMENT_H
 
-void deplacement (int** p, int* tete, int* queue);
+void deplacement (struct adresse* pointeur, char* sens);
 
 #endif /* DEPLACEMENT_H */
diff --git a/snake/fenetre.c b/snake/fenetre.c
index 57ae857..851142a 100755
--- a/snake/fenetre.c
+++ b/snake/fenetre.c
@@ -27,7 +27,6 @@ int start (struct adresse* pointeur)  {
 
   int score=0;
 
-  char* num_score = "score : 00000";
 
   
 
diff --git a/snake/lancement b/snake/lancement
new file mode 100755
index 0000000..44c21f3
Binary files /dev/null and b/snake/lancement differ
diff --git a/snake/main.c b/snake/main.c
index b050594..3e27527 100644
--- a/snake/main.c
+++ b/snake/main.c
@@ -3,9 +3,10 @@
 #include <graph.h>
 #include "fenetre.h"
 #include "plateau_init.h"
+#include "deplacement.h"
 
 
-
+#define CYCLE 1000000L
 
 
 int main(void)  {
@@ -14,6 +15,23 @@ int main(void)  {
   struct adresse* pointeur =  plateau_init();
 
   
+  char* sens = NULL;
+
+  
+  unsigned char jeu = 1 ;
+
+  unsigned long suivant;
+
+  sens = malloc(sizeof(char));
+
+  *sens = "bas";
+
+
+  suivant = Microsecondes() + CYCLE;
+
+  
+  
+  
   InitialiserGraphique();
 
   /*initialisation de la taille de la fenetre de jeux*/
@@ -21,17 +39,41 @@ int main(void)  {
   CreerFenetre(10,10,1450,840);
 
 
+
   start(pointeur);
 
-  /* while ( jeu = 1)  {
+   while ( jeu = 1)  {
 
     if (Microsecondes() > suivant) {
 
     
-      deplacement(plateau, tete, queue);
+      deplacement(pointeur, sens);
 
       
-      }*/
+      }
+
+   }
+
+
+
+   /* déallocations des tableaux */
+   
+   for ( i = 0; i < LIGNES; i++)  {
+
+     free(tableau[i]);
+
+   }
+
+   free(pointeur);
+
+   free(tete);
+
+   free(queue);
+
+   free(sens); 
+
+
+   free(tableau);
 
   
   Touche();
diff --git a/snake/plateau_init.c b/snake/plateau_init.c
index 98995ae..e87db1e 100755
--- a/snake/plateau_init.c
+++ b/snake/plateau_init.c
@@ -94,14 +94,16 @@ struct adresse* plateau_init(void) {
     
     plateau[ligne_pomme][colonne_pomme] = 2;
 
-    }
+  }
+
 
-    pointeur -> plateau = plateau;
-    pointeur -> tete = tete;
-    pointeur -> queue = queue; 
   
+  pointeur -> plateau = plateau;
+  pointeur -> tete = tete;
+  pointeur -> queue = queue; 
+    
   
 
   
-    return pointeur;
+  return pointeur;
 }
diff --git a/snake/update_queue.h b/snake/update_queue.h
index 7100ed0..e565eb6 100644
--- a/snake/update_queue.h
+++ b/snake/update_queue.h
@@ -4,9 +4,9 @@
 #ifndef UPDATE_QUEUE_H
 #define UPDATE_QUEUE_H
 
-int test_queue(int* queue, int** p) ;*
+int test_queue(int* queue, int** p) ;
 
-#enfif /* UPDATE_QUEUE_H */
+#endif /* UPDATE_QUEUE_H */