diff --git a/snake/deplacement.c b/snake/deplacement.c
index c764393..803f4ca 100644
--- a/snake/deplacement.c
+++ b/snake/deplacement.c
@@ -29,6 +29,62 @@ void deplacement (struct adresse* pointeur, unsigned char* sens)  {
   
   yellow = CouleurParComposante(255,255,0);
 
+
+
+  printf("%d %d", queue[0], queue[1]);
+ 
+
+  if ( *sens == BAS)  {
+
+    plateau[tete[0] + 1][tete[1]] = 1;
+
+    plateau[queue[0]][queue[1]] = 0;
+
+    tete[0] = tete[0] + 1;
+
+    ChoisirCouleurDessin(yellow);
+    RemplirRectangle(20*(tete[1] + 1),20*(tete[0] +1 ),20,20);
+
+    ChoisirCouleurDessin(green);
+    RemplirRectangle(20*(queue[1] +1 ),20*(queue[0] +1 ),20,20);
+
+    queue[0] = queue[0] + 1; 
+
+  
+
+	
+    }
+
+  if ( *sens == HAUT)  {
+
+    plateau[tete[0] - 1][tete[1]] = 1;
+
+    plateau[queue[0]][queue[1]] = 0;
+
+    tete[0] = tete[0] -1;
+
+  }
+
+  if ( *sens == DROITE)  {
+
+    plateau[tete[0]][tete[1] + 1] = 1;
+
+    plateau[queue[0]][queue[1]] = 0;
+
+    tete[1] = tete[1] + 1;
+
+  }
+
+  if ( *sens == GAUCHE)  {
+
+    plateau[tete[0]][tete[1] - 1] = 1;
+
+    plateau[queue[0]][queue[1]] = 0;
+
+    tete[1] = tete[1] - 1;
+
+  }
+
   
 		
   /* affectations des commandes aux touches du jeu */
@@ -89,55 +145,9 @@ void deplacement (struct adresse* pointeur, unsigned char* sens)  {
       *sens = DROITE;
 
     }
+  }
 
-    else  {
 
-      if ( *sens == BAS)  {
-
-	plateau[tete[0] + 1][tete[1]] = 1;
-
-	plateau[queue[0]][queue[1]] = 0;
-
-	tete[0] = tete[0] + 1;
-
-	ChoisirCouleurDessin(yellow);
-	RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
-
-	ChoisirCouleurDessin(green);
-	RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
-
-	
-      }
-
-      if ( *sens == HAUT)  {
-
-	plateau[tete[0] - 1][tete[1]] = 1;
-
-	plateau[queue[0]][queue[1]] = 0;
-
-	tete[0] = tete[0] -1;
-
-      }
-
-      if ( *sens == DROITE)  {
-
-	plateau[tete[0]][tete[1] + 1] = 1;
-
-	plateau[queue[0]][queue[1]] = 0;
-
-	tete[1] = tete[1] + 1;
-
-      }
-
-      if ( *sens == GAUCHE)  {
-
-	plateau[tete[0]][tete[1] - 1] = 1;
-
-	plateau[queue[0]][queue[1]] = 0;
-
-	tete[1] = tete[1] - 1;
-
-      }
 
 	
       
@@ -145,12 +155,12 @@ void deplacement (struct adresse* pointeur, unsigned char* sens)  {
     /* mise à jour de la position de queue dans le plateau */
     
     
-    }
-  }
-
-
+ 
 }
 
+
+
+
     
   
       
diff --git a/snake/lancement b/snake/lancement
index 54aaf37..28522c0 100755
Binary files a/snake/lancement and b/snake/lancement differ
diff --git a/snake/main.c b/snake/main.c
index 635f63c..dad04c3 100644
--- a/snake/main.c
+++ b/snake/main.c
@@ -51,6 +51,8 @@ int main(void)  {
     
       deplacement(pointeur, sens);
 
+      suivant = Microsecondes() + CYCLE;
+
       
       }
 
diff --git a/snake/plateau_init.c b/snake/plateau_init.c
index e87db1e..b985944 100755
--- a/snake/plateau_init.c
+++ b/snake/plateau_init.c
@@ -20,7 +20,6 @@ struct adresse* plateau_init(void) {
 
   int** plateau  = NULL;
 
-  struct adresse plateau_tete_queue = {NULL, NULL, NULL};
 
   struct adresse* pointeur = NULL;
 
@@ -55,12 +54,12 @@ struct adresse* plateau_init(void) {
 
   /* positionnement du serpent et marquage de la tete et la queue */
 
-  tete[0] = (LIGNES/2)-5 ;
+  tete[0] = ((LIGNES/2)+(TAILLE_SERPENT/2)-1);
   tete[1] = COLONNES/2 ;
 
   
 
-  queue[0] = ((LIGNES/2)-5)+TAILLE_SERPENT-1;
+  queue[0] = ((LIGNES/2)-(TAILLE_SERPENT/2));
   queue[1] = COLONNES/2; 
 
   for (i = 0; i < TAILLE_SERPENT ; i++)  {