diff --git a/main.c b/main.c
index f8fb1c0..6370673 100644
--- a/main.c
+++ b/main.c
@@ -10,8 +10,17 @@
 #define DELTA 100000L
 #define DELTA2 1000000L
 
+void FinJeu(PIXELS* serpent,PIXELS* pastilles,PIXELS* obstacle)
+{
+    free(serpent);
+    free(pastilles);
+    free(obstacle);
+    FermerGraphique();
+}
+
 int main()
 {   
+    /* Déclarations des variables */
     unsigned char pause = 0;
     unsigned long score = 0;
     unsigned long suivant;
@@ -24,9 +33,12 @@ int main()
     int valeur_retourne = 0;
     unsigned char perdu = 0;
 
+    /* Tailles des tableaux dynamiques */
     size_t longueur_serpent = 10;
     size_t longueur_pastilles = PASTILLES;
     size_t longueur_obstacle = OBSTACLE;
+
+    /* Allocation dynamique des tableaux */
     PIXELS *serpent = (PIXELS *)malloc(longueur_serpent * sizeof(PIXELS));
     PIXELS *pastilles = (PIXELS *)malloc(longueur_pastilles * sizeof(PIXELS));
     PIXELS *obstacle = (PIXELS *)malloc(longueur_obstacle * sizeof(PIXELS));
@@ -35,6 +47,8 @@ int main()
     int direction = 0;
     int direction_davant = 0;
 
+    /* Vérification des allocations mémoire */
+
     if(serpent == NULL) {
         fprintf(stderr, "Erreur d'allocation de mémoire.\n");
         return EXIT_FAILURE;
@@ -48,7 +62,7 @@ int main()
         return EXIT_FAILURE;
     }
 
-
+    /* Initialisations */
     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");
@@ -57,6 +71,7 @@ int main()
     {
         if(perdu == 1)
         {
+            /* Affichage de l'écran de fin de partie */
             PerduGUI();
             if (ToucheEnAttente() == 1)
             {
@@ -65,11 +80,15 @@ int main()
                     case XK_Return:
                         perdu = 0;
                         break;
+                    case XK_Escape:
+                        FinJeu(serpent,pastilles,obstacle);
+                        return EXIT_SUCCESS;
                 }
             }
         }
         else
         {
+            /* Affichage du menu principal */
             Menu();
             if (ToucheEnAttente() == 1)
             {
@@ -87,10 +106,7 @@ int main()
                         DessinerScene(pastilles,serpent,obstacle,longueur_serpent,longueur_pastilles,longueur_obstacle);
                         break;
                     case XK_Escape:
-                        free(serpent);
-                        free(pastilles);
-                        free(obstacle);
-                        FermerGraphique();
+                        FinJeu(serpent,pastilles,obstacle);
                         return EXIT_SUCCESS;
                 }
             }
@@ -98,69 +114,17 @@ int main()
 
         while(game_on) /* Lancement du cycle pour les Inputs et le Jeu*/
 	    {   
-            if (ToucheEnAttente() == 1)
+            if(Touches(&direction,&direction_davant,&pause))
             {
-                switch (Touche())
-                {
-                    case XK_Up:
-                        direction = 1;
-                        if(direction_davant == 3 && direction == 1)
-                        {
-                            direction = direction_davant;
-                        }
-                        break;
-                    case XK_Down:
-                        direction = 3;
-                        if(direction_davant == 1 && direction == 3)
-                        {
-                            direction = direction_davant;               /* Changements de direction du serpent*/
-                        }
-                        break;
-                    case XK_Left:
-                        direction = 0;
-                        if(direction_davant == 2 && direction == 0)
-                        {
-                            direction = direction_davant;
-                        }
-                        break;
-                    case XK_Right:
-                        direction = 2;
-                        if(direction_davant == 0 && direction == 2)
-                        {
-                            direction = direction_davant;
-                        }
-                        break;
-
-                    case XK_space:
-                        if(pause ==0)
-                        {
-                            pause=1;
-                            break;
-                        }
-                            pause=0;
-                            break;
+                FinJeu(serpent,pastilles,obstacle);
+                return EXIT_SUCCESS;
+            }
                             
-                    case XK_Escape:
-                        if(pause == 1)
-                        {
-                            free(serpent);
-                            free(pastilles);
-                            free(obstacle);
-                            FermerGraphique();
-                            return EXIT_SUCCESS;
-                        }
-                        break;
-                    }
-                            
-
             if(pause==1)
             {
                 Pause();
             }
-
-            }
-            else
-            {   if(pause==0)
+            else if(pause==0)
                 {
                     
                     if (Microsecondes()>suivant2)
@@ -195,10 +159,7 @@ int main()
                 }
             }
         }
-    }
-    free(serpent);
-    free(pastilles);
-    free(obstacle);
-    FermerGraphique();
+    FinJeu(serpent,pastilles,obstacle);
     return EXIT_SUCCESS;
 }
+