diff --git a/snake/Makefile b/snake/Makefile
index 779c3d8..564ff88 100755
--- a/snake/Makefile
+++ b/snake/Makefile
@@ -14,6 +14,8 @@ OFILES = plateau_init.o \
 	ajout_score.o \
 	score_init.o \
 	supp_queue.o \
+	affichage_timer.o \
+	ecran_fin.o \
 	main.o
 
 
@@ -33,13 +35,17 @@ augmentation_serpent.o : augmentation_serpent.h
 
 deplacement.o : deplacement.h supp_queue.h
 
-supp_queue.o : supp_queue.h augmentation_serpent.h ajout_score.h 
+supp_queue.o : supp_queue.h augmentation_serpent.h ajout_score.h
+
+ecran_fin.o : ecran_fin.h
 
 ajout_score.o : ajout_score.h
 
 score_init.o : score_init.h
 
-main.o : main.c fenetre.h deplacement.h
+affichage_timer.o : affichage_timer.h
+
+main.o : main.c fenetre.h deplacement.h affichage_timer.h ecran_fin.h
 
 
 
diff --git a/snake/affichage_timer.c b/snake/affichage_timer.c
new file mode 100644
index 0000000..65f002c
--- /dev/null
+++ b/snake/affichage_timer.c
@@ -0,0 +1,43 @@
+/* fonction d'affichage du score dans la fenêtre graphique */
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "affichage_timer.h"
+
+
+void affichage_timer(unsigned char minutes, unsigned char secondes)  {
+
+
+  char min[5];
+  char sec[5];
+
+  couleur grey, white;
+
+  
+
+  grey = CouleurParComposante(35,35,35);
+  ChoisirCouleurDessin(grey);
+  RemplirRectangle(1250, 150, 170, 70);
+
+  
+
+  
+
+  sprintf(min, "%hhu", minutes);
+
+  sprintf(sec, "%hhu", secondes);
+
+  
+
+  white = CouleurParComposante(255, 255, 255);
+  ChoisirCouleurDessin(white);
+
+  EcrireTexte(1290, 180, min, 2);
+
+  EcrireTexte(1330, 180, ":", 2);
+
+  EcrireTexte(1370, 180, sec, 2); 
+
+
+}
diff --git a/snake/affichage_timer.h b/snake/affichage_timer.h
new file mode 100644
index 0000000..079c42c
--- /dev/null
+++ b/snake/affichage_timer.h
@@ -0,0 +1,12 @@
+
+
+#ifndef AFFICHAGE_TIMER_H
+#define AFFICHAGE_TIMER_H
+
+#include <graph.h>
+
+
+void affichage_timer( unsigned char minutes, unsigned char secondes) ;
+
+
+#endif /* AFFICHAGE_TIMER_H */
diff --git a/snake/ajout_score.c b/snake/ajout_score.c
index c07b364..67bda44 100644
--- a/snake/ajout_score.c
+++ b/snake/ajout_score.c
@@ -27,12 +27,12 @@ void ajout_score(short int* compteur) {
 
     
     ChoisirCouleurDessin(grey);
-    RemplirRectangle( 1250, 570, 70, 40);
+    RemplirRectangle( 1300, 620, 70, 40);
 
 
     
     ChoisirCouleurDessin(white);
-    EcrireTexte(1270, 600, a, 2);
+    EcrireTexte(1310, 650, a, 2);
 
 	
 }
diff --git a/snake/deplacement.c b/snake/deplacement.c
index e57da60..7e34c25 100644
--- a/snake/deplacement.c
+++ b/snake/deplacement.c
@@ -256,10 +256,49 @@ unsigned char deplacement (struct adresse* pointeur, unsigned char* sens, unsign
 
     }
 
+
+    /* pour quiiter directement le jeu */
+
+    if ( touche == XK_Escape)  {
+
+      return 0;
+
+    }
+
+
+
+
+
+    
+    /* pour mette le jeu pause puis soit reprendere le jeu soit quiiter le jeu */
+    
+    if (touche == XK_space)  {
+
+      touche = Touche();
+
+      if ( touche == XK_space)  {
+
+	return 1;
+
+      }
+
+      if ( touche == XK_Escape)  {
+
+	return 0;
+      }
+    }
+
  
   }
 
 
+
+
+
+
+  
+
+
     
 
   else {
diff --git a/snake/ecran_fin.c b/snake/ecran_fin.c
index 523e724..7d1d113 100644
--- a/snake/ecran_fin.c
+++ b/snake/ecran_fin.c
@@ -6,20 +6,24 @@
 
 #include <stdlib.h>
 #include <stdio.h>
-#include <graph.h>
+#include "ecran_fin.h"
 
 
 
+void ecran_fin(short int* compteur, unsigned char minutes, unsigned char secondes) {
 
-int main(void) {
-
-couleur grey, green, yellow, red, black;
-
-
-  InitialiserGraphique();
 
   
-  CreerFenetre(400,150,650,500);
+  couleur grey, white, red;
+
+  char comp[10];
+
+  char min[5];
+  char sec[5];
+
+  int touche; 
+
+
 	
 
 
@@ -27,40 +31,60 @@ couleur grey, green, yellow, red, black;
   grey = CouleurParComposante(60, 60, 60);
   ChoisirCouleurDessin(grey);
 
-  RemplirRectangle(0,0,650,500);
+  RemplirRectangle(400,150,650,500);
 
   red = CouleurParComposante(255,0,0);
   ChoisirCouleurDessin(red);
 
-  EcrireTexte(280,50, "DEAD", 2);
+  EcrireTexte(680,250, "DEAD", 2);
   
-  EcrireTexte(90,370, "space = play", 2);
+  EcrireTexte(490,370, "espace = rejouer", 2);
   
-  EcrireTexte(400,370, "echap = quit", 2);
+  EcrireTexte(800,370, "echap = quitter", 2);
 
 
   
   
 
-  yellow = CouleurParComposante(255,255,0);
-  ChoisirCouleurDessin(yellow);
+  white = CouleurParComposante(255,255,255);
+  ChoisirCouleurDessin(white);
 
-  EcrireTexte(20,200, "score : ", 2);
+  EcrireTexte(420,500, "Votre score : ", 2);
 
-  EcrireTexte(20,250, "  time : ", 2);
+  sprintf(comp, "%hd", *compteur);
+
+  EcrireTexte( 620, 500, comp, 2);
+  
+
+  EcrireTexte(750,500, "Temps  ", 2);
+
+  sprintf(min, "%hhd", minutes);
+
+  EcrireTexte (875, 500, min, 2);
+
+  EcrireTexte (900, 500, ":", 2);
+
+  sprintf( sec, "%hhd", secondes);
+
+  EcrireTexte( 920, 500, sec, 2);
+  
 
   
 
-/*
-  ajout_score();
-  time()
-  */
-
-  Touche();
-  FermerGraphique();
+  free(compteur);
 
 
-  return EXIT_SUCCESS;
+  touche = Touche();
+
+  if ( touche == XK_Escape )  {
+    return;
+  }
+
+  if ( touche == XK_space)  {
+
+    main();
+
+  }
 	
 }
 
diff --git a/snake/ecran_fin.h b/snake/ecran_fin.h
new file mode 100644
index 0000000..2af53d7
--- /dev/null
+++ b/snake/ecran_fin.h
@@ -0,0 +1,11 @@
+
+
+#ifndef ECRAN_FIN_H
+#define ECRAN_FIN_H
+
+#include <graph.h>
+
+void ecran_fin( short int* compteur, unsigned char minutes, unsigned char secondes);
+
+
+#endif  /* ECRAN_FIN_H */
diff --git a/snake/fenetre.c b/snake/fenetre.c
index ed0d755..59aa87c 100755
--- a/snake/fenetre.c
+++ b/snake/fenetre.c
@@ -18,11 +18,11 @@ int  start (struct adresse* pointeur)  {
   int i, j;
 
   
-  char* texte1 = "espace = lancer";
+  char* texte1 = "Touche directionnelles = déplacement";
   
-  char* texte2 = "espace = pause";
+  char* texte2 = "Espace = pause";
 
-  char* texte3 = "echap = quitter";
+  char* texte3 = "Echap = quitter";
 
   int score=0;
 
@@ -63,14 +63,12 @@ int  start (struct adresse* pointeur)  {
 
   white = CouleurParComposante(255,255,255);
   ChoisirCouleurDessin(white);
-  EcrireTexte(1250, 300, texte1, 1);
-  EcrireTexte(1250, 345, texte2, 1);
-  EcrireTexte(1250, 390, texte3, 1);
-
-  /*affichage compteur pomme (score)*/
-
-
-
+  EcrireTexte(1290, 140, "Temps", 2);
+  EcrireTexte(1250, 300, "Utiliser les fleches", 1);
+  EcrireTexte(1250, 320, "pour se deplacer", 1);
+  EcrireTexte(1250, 370, "Espace = pause", 1);
+  EcrireTexte(1250, 435, "Echape = quiiter", 1);
+  EcrireTexte(1290, 600, "Score",2);
 
   
 
diff --git a/snake/main.c b/snake/main.c
index 5c168a0..330d416 100644
--- a/snake/main.c
+++ b/snake/main.c
@@ -7,10 +7,12 @@
 #include "deplacement.h"
 #include "score_init.h"
 #include "ecran_lancement.h"
+#include "affichage_timer.h"
+#include "ecran_fin.h"
 
 
-#define CYCLE 200000L
-
+#define CYCLE_SERPENT 200000L
+#define CYCLE_TIMER 1000000L
 
 int main(void)  {
 
@@ -21,7 +23,7 @@ int main(void)  {
 
   short int* compteur = NULL;
 
-  int i = 0, j;
+  int i;
   
 
   unsigned short* indice_queue = pointeur -> indice_queue;
@@ -32,13 +34,14 @@ int main(void)  {
 
   unsigned char* tete = pointeur -> tete; 
   
-  unsigned char jeu;
+  unsigned char jeu, entrer, minutes, secondes;
 
-  unsigned long suivant;
+  unsigned long suivant_serpent, suivant_timer;
 
   unsigned long acceleration = 0L;
 
-  int numsprite; 
+  int numsprite;
+
 
 
 
@@ -51,7 +54,10 @@ int main(void)  {
   *retard = 0;
 
 
-  suivant = Microsecondes() + CYCLE;
+  suivant_serpent = Microsecondes() + CYCLE_SERPENT;
+
+  suivant_timer = Microsecondes() + CYCLE_TIMER; 
+  
 
   
   
@@ -66,29 +72,35 @@ int main(void)  {
 
   jeu = ecran_lancement();
 
+  if (jeu == 1)  {
+
+    entrer = 1;
+  }
+
 
   numsprite =  start(pointeur);
 
   compteur = score_init();
 
+  minutes = 0;
+
+  secondes = 0;
+
+  affichage_timer(minutes, secondes);
+
 
   
   while (jeu ==  1)  {
 
-    if (Microsecondes() > suivant) {
-
-      /* printf("(%d %d)\n", pointeur -> corps_serpent[*indice_queue][0], pointeur -> corps_serpent[*indice_queue][1]);
-
-	 printf("[%hhu  %hhu]\n", tete[0], tete[1]);*/
-
+    if (Microsecondes() > suivant_serpent) {
 
 
      
       jeu = deplacement(pointeur, sens, retard, compteur, &acceleration, numsprite);
 
-      suivant = Microsecondes() + CYCLE - acceleration;
+      suivant_serpent = Microsecondes() + CYCLE_SERPENT - acceleration;
 
-      printf("{%ld}", acceleration); 
+      printf("%u:%u\n", minutes, secondes); 
 
      
 
@@ -96,8 +108,27 @@ int main(void)  {
       
     }
 
+    if (Microsecondes () > suivant_timer)  {
+
+
+      secondes++;
+
+      suivant_timer = Microsecondes() + CYCLE_TIMER;
+
+      if (secondes == 60)  {
+
+	secondes = 0;
+
+	minutes++;
+      
+
+      }
+      affichage_timer(minutes,secondes);
+    }
   }
 
+  
+
   LibererSprite(numsprite);
 
 
@@ -132,13 +163,14 @@ int main(void)  {
 
    free(pointeur);
 
-   free(compteur);
 
-   free(retard); 
+   free(retard);
 
-  
+   if (entrer == 1 ) { 
 
+     ecran_fin(compteur, minutes, secondes);
 
+   }
 
    FermerGraphique();
 
diff --git a/snake/pomme.png b/snake/pomme.png
index df5b26c..0ac8c01 100644
Binary files a/snake/pomme.png and b/snake/pomme.png differ
diff --git a/snake/score_init.c b/snake/score_init.c
index 9b372a4..71db24d 100644
--- a/snake/score_init.c
+++ b/snake/score_init.c
@@ -10,23 +10,23 @@ short int* score_init(void) {
 
   couleur white;
     
-    short int* compteur = NULL;
-    char a[20];
+  short int* compteur = NULL;
+  char a[20];
 
 	
 
 
-    white = CouleurParComposante(255,255,255);
-    ChoisirCouleurDessin(white);
+  white = CouleurParComposante(255,255,255);
+  ChoisirCouleurDessin(white);
     
-    compteur = malloc(sizeof(short int));
-    *compteur = 0;
+  compteur = malloc(sizeof(short int));
+  *compteur = 0;
 
 
-    sprintf(a, "%d", *compteur); 
+  sprintf(a, "%hd", *compteur); 
 
-    EcrireTexte(1270, 600, a, 2);
+  EcrireTexte(1310, 650, a, 2);
 
-    return compteur;
+  return compteur;
 }
 
diff --git a/snake/time.c b/snake/time.c
deleted file mode 100644
index fc43c3c..0000000
--- a/snake/time.c
+++ /dev/null
@@ -1,97 +0,0 @@
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <graph.h>
-
-
-#define CYCLE 1000000L
-
-
-int main(void) {
-
-  unsigned long suivant;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  
-
-  /*  int* time = NULL; */
-
-  /* time = malloc( sizeof(short int)); 
-  
-  time[0] = 0;
-  time[1] = 0; */
-
-
-  suivant = Microsecondes() + CYCLE;
-
-  /*printf("%d : %d\n", &time[0],&time[1]);*/
-
-  while (1)  {
-
-    if (Microsecondes() > suivant)  { 
-
-            
-      
-      /* une periode s'est écoulé */
-      /* prochaine date */
-
-      suivant = Microsecondes()+CYCLE;
-
-      /*time[1]++;
-
-      if ( time[1] == 60)  {
-
-	time[1] = 0;
-
-	time[0] ++;
-
-	}*/
-      printf("%lu", Microsecondes());
-
-      
-
-      
-
-     
-    }
-
-
-  /* if ( ToucheEnAttente() == 1 )  {
-
-      if (Touche() == XK_space)  {
-
-	break;
-
-	}
-	}*/
-
-   
-  }
-
-  return EXIT_SUCCESS;
-
-}
diff --git a/snake/time.h b/snake/time.h
deleted file mode 100644
index 612f1b4..0000000
--- a/snake/time.h
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-#ifndef TIME_H
-#define TIME_H
-
-void time(void);
-
-
-#endif  /* TIME_H */