diff --git a/main.c b/main.c
index 9a7a380..693feff 100644
--- a/main.c
+++ b/main.c
@@ -13,8 +13,30 @@
 
 #define DECALEMENT 30
 
-#define delta 10000L
+#define delta 1000000L
 
+void DeplacementSerpent(int direction ,int *serpent, int longueur)
+{
+    int i = 0;
+
+
+    if(direction == 0) /* Direction vers la gauche */
+    {
+        printf("Gauche %d\n",direction);
+    }
+    else if(direction == 1) /* Direction vers le haut */
+    {
+        printf("Haut %d\n",direction);
+    }
+    else if(direction == 2) /* Direction vers la droite */
+    {
+        printf("Droite %d\n",direction);
+    }
+    else if(direction == 3) /* Direction vers le bas */
+    {
+        printf("Bas %d\n",direction);
+    }
+}
 
 int ArrondirPixel(int nombre) /* Calcule un arrondi du pixel pour pouvoir respecter la norme des 40 lignes et 60 colonnes */
 {
@@ -31,7 +53,7 @@ void gen_pastille(int nb_pastille, int *p_pastilles) /* Ajout des pointeurs pour
 
                                    /* nb_pastille = int nombre de pastille voulue , p_pastilles est un pointeur d'un tableau de pixels qui sont des pastilles*/
                                    /*Générer une pastille dans la grid*/
-                                   /*Seulement le code n'est pas complet*/
+                                   /*Code n'est pas complet*/
                                    /*-Elles se génèrent à des endroits qui peuvent être les mêmes ou gêner le snake*/
 
 {
@@ -88,9 +110,11 @@ void DessinerScene(int* pastilles) /* Dessine la scène */
 void InitialisationDuSerpent(int *p_serpent) /* L'initialisation du serpent */
 {
     int x_millieu = 0, y_millieu = 0 , compteur = 0;
+    couleur o;
     couleur j;
+    o=CouleurParNom("Gold");
     j=CouleurParNom("yellow");
-    ChoisirCouleurDessin(j);
+    ChoisirCouleurDessin(o);
     x_millieu = T_PIXEL*30; /* 30 = 60 colonnes divisé par 2*/
     y_millieu = T_PIXEL*20; /* 20 = 40 colonnes divisé par 2*/
     RemplirRectangle(x_millieu,y_millieu,T_PIXEL,T_PIXEL);
@@ -101,6 +125,7 @@ void InitialisationDuSerpent(int *p_serpent) /* L'initialisation du serpent */
     p_serpent[1] = y_millieu;
     for(compteur=0;compteur<=18;compteur+=2) /* Commence par 1 car p_serpent index 0 initialisées pour la tête et 2 + 2x9 = 10 couples de coordonnées 2D */
     {
+        ChoisirCouleurDessin(j);
         p_serpent[compteur+2] = p_serpent[compteur]+T_PIXEL;
         p_serpent[compteur+3] = p_serpent[compteur+1];
 
@@ -117,14 +142,28 @@ int main()
     int go_on=1;
     int n;
     int x_pastille,y_pastille;
-    int p_serpent[100]; /* A faire en tableau dynamique*/
-    int pastilles[5]; /* A faire en tableau dynamique */
+
+    size_t longueur_serpent = 20;
+    size_t longueur_pastilles = 10;
+    int *serpent = (int *)malloc(longueur_serpent * sizeof(int));
+    int *pastilles = (int *)malloc(longueur_pastilles * sizeof(int));
+    int direction = 0;
+
+    if(serpent == NULL) {
+        fprintf(stderr, "Erreur d'allocation de mémoire.\n");
+        return EXIT_FAILURE;
+    }
+    if(pastilles == NULL) {
+        fprintf(stderr, "Erreur d'allocation de mémoire.\n");
+        return EXIT_FAILURE;
+    }
+
 
     InitialiserGraphique();
     CreerFenetre(10,10,W_WINDOW,H_WINDOW); /* Peut être changer cette ligne avec la fonction Maxx et Maxy fournie dans graph.h ??*/
     ChoisirTitreFenetre("SNAKE SAE11 IN C");
     DessinerScene(pastilles);
-    InitialisationDuSerpent(p_serpent);
+    InitialisationDuSerpent(serpent);
 
     while(go_on) /* Lancement du cycle pour les Inputs et le Jeu*/
 	{
@@ -133,17 +172,21 @@ int main()
             switch (Touche())
             {
             case XK_Up:
-                    printf("Touche haut\n");
-                    break;
-                case XK_Down:
-                    printf("Touche bas\n");
-                    break;
-                case XK_Left:
-                    printf("Touche gauche\n");
-                    break;
-                case XK_Right:
-                    printf("Touche droite\n");
-                    break;
+                direction = 1;
+                DeplacementSerpent(direction ,serpent, longueur_serpent);
+                break;
+            case XK_Down:
+                direction = 3;
+                DeplacementSerpent(direction ,serpent, longueur_serpent);
+                break;
+            case XK_Left:
+                direction = 0;
+                DeplacementSerpent(direction ,serpent, longueur_serpent);
+                break;
+            case XK_Right:
+                direction = 2;
+                DeplacementSerpent(direction ,serpent, longueur_serpent);
+                break;
             
             default:
                 printf("Autre touche\n");
@@ -156,6 +199,7 @@ int main()
 			{
 				n++;
 				suivant=Microsecondes()+delta;
+                DeplacementSerpent(direction,serpent,longueur_serpent);
 			}
 	    }
     }