diff --git a/travail_de_groupe/chef_oeuvre/src/gest_event.c b/travail_de_groupe/chef_oeuvre/src/gest_event.c
index 63661ab57ce3b5457d4855b9cb3adbd900e7f4a2..3be92ab575620bc0026087a20c9d7a5250657cc2 100644
--- a/travail_de_groupe/chef_oeuvre/src/gest_event.c
+++ b/travail_de_groupe/chef_oeuvre/src/gest_event.c
@@ -56,6 +56,62 @@ void manageMenu(){
     SDL_Delay(5);
 }
 
+void manageLost(){
+    SDL_Event event;
+    while (SDL_PollEvent(&event)){
+            switch(event.type)
+            {   
+                case SDL_QUIT:
+                    running = 0;
+                    break;
+
+                case SDL_KEYUP:
+                    switch (event.key.keysym.sym)
+                    {
+                    case SDLK_ESCAPE:
+                        running = 0;
+                        continue;
+
+                    default:
+                        continue;
+                    }
+                    break;
+                
+                case SDL_KEYDOWN:
+                    switch (event.key.keysym.sym)
+                    {
+                    case SDLK_ESCAPE:
+                        running = 0;
+                        continue;
+
+                    default:
+                        continue;
+                    }
+                    break;
+                
+                case SDL_MOUSEMOTION:
+                    mousePosition.x = event.motion.x;
+                    mousePosition.y = event.motion.y;
+                    continue;
+
+
+                case SDL_MOUSEBUTTONDOWN:
+                    if (SDL_PointInRect(&mousePosition, &playAgainButtonRect)){
+                        initAll();
+                        gameState = GAME;
+                    }
+                    if (SDL_PointInRect(&mousePosition, &quitButtonRect)){
+                        running = 0;
+                    }
+                    break;
+
+                default:
+                    continue;
+            }
+    }
+    SDL_Delay(5);
+}
+
 void manageGame(){
     SDL_Event event;
     while (SDL_PollEvent(&event)){
@@ -148,7 +204,7 @@ void *eventLoop(void *arg){
         switch(gameState){
             case MENU : manageMenu();break;
             case GAME : manageGame();break;
-            case LOSE : manageMenu();break;
+            case LOSE : manageLost();break;
             default:printf("game state fault");break;
         }
     }
diff --git a/travail_de_groupe/chef_oeuvre/src/player.c b/travail_de_groupe/chef_oeuvre/src/player.c
index b1d7b73a0870d5fe59f28bf9ffecbf55bf782e5b..5143e876b36472dabfc7b207a4a37cc9bae88bb9 100644
--- a/travail_de_groupe/chef_oeuvre/src/player.c
+++ b/travail_de_groupe/chef_oeuvre/src/player.c
@@ -207,4 +207,9 @@ void updatePlayer(){
     manageMovement();
 }
 
+void initAll(){
+    initFire();
+    initPlayer();
+}
+
 
diff --git a/travail_de_groupe/chef_oeuvre/src/player.h b/travail_de_groupe/chef_oeuvre/src/player.h
index 7bcdbb86448aca0932476b19c6daea03c6ac1452..31e3e59271ea6a999caa92e5a7a3d0d9e7229f7a 100644
--- a/travail_de_groupe/chef_oeuvre/src/player.h
+++ b/travail_de_groupe/chef_oeuvre/src/player.h
@@ -35,5 +35,6 @@ void pourWater(int, int);
 void fillWater(int, int);
 int giveCaseBelowPosition(int, int);
 void updatePlayer();
+void initAll();
 
 #endif
\ No newline at end of file
diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c
index 5b680ac098dcb9445c2e3f52aee480ecfab22e49..d554aec67e6e558a5747d9d1c046380064f85b03 100644
--- a/travail_de_groupe/chef_oeuvre/src/render.c
+++ b/travail_de_groupe/chef_oeuvre/src/render.c
@@ -10,6 +10,8 @@ TTF_Font *robotoFont;
 SDL_DisplayMode screenDimension;
 
 SDL_Rect buttonRect;
+SDL_Rect playAgainButtonRect;
+SDL_Rect quitButtonRect;
 
 SDL_Surface * grassSurface;
 SDL_Texture * grassTexture;
@@ -329,8 +331,9 @@ void drawLost(){
     rect.x = 0;
     rect.y = 0;
     SDL_RenderCopy(renderer, backgroundLostTexture, NULL, &rect);
-    SDL_RenderCopy(renderer, playAgainButtonTexture, NULL, &rect);
-    SDL_RenderCopy(renderer, quitButtonTexture, NULL, &rect);
+    SDL_RenderCopy(renderer, playAgainButtonHoverTexture, NULL, &rect);
+    SDL_RenderCopy(renderer, quitButtonHoverTexture, NULL, &rect);
+    SDL_RenderCopy(renderer, playAgainButtonHoverTexture, NULL, &rect);
     SDL_RenderPresent(renderer);
 }
 
@@ -380,6 +383,9 @@ void mainLoop(){
     playAgainButtonSurface = IMG_Load("Res/buttonPlayAgain.png");
     playAgainButtonTexture = SDL_CreateTextureFromSurface(renderer, playAgainButtonSurface);
 
+    playAgainButtonHoverSurface = IMG_Load("Res/buttonPlayAgainHover.png");
+    playAgainButtonHoverTexture = SDL_CreateTextureFromSurface(renderer, playAgainButtonHoverSurface);
+
     fireSurface = IMG_Load("Res/fire_spritesheet.png");
     fireTexture = SDL_CreateTextureFromSurface(renderer, fireSurface);
 
@@ -415,7 +421,17 @@ void mainLoop(){
     SDL_FreeSurface(playAgainButtonSurface);
     SDL_FreeSurface(quitButtonSurface);
     SDL_FreeSurface(quitButtonHoverSurface);
+    SDL_FreeSurface(playAgainButtonHoverSurface);
+
+    playAgainButtonRect.x = (screenDimension.w * 700)/1920;
+    playAgainButtonRect.y = (screenDimension.h * 615)/1080;
+    playAgainButtonRect.w = (screenDimension.w * 400)/1920;
+    playAgainButtonRect.h = (screenDimension.h * 130)/1080;
 
+    quitButtonRect.x = playAgainButtonRect.x;
+    quitButtonRect.w = playAgainButtonRect.w;
+    quitButtonRect.y = (screenDimension.h * 887)/1080;
+    quitButtonRect.h = playAgainButtonRect.h;
 
     unsigned int a = SDL_GetTicks();
     unsigned int b = SDL_GetTicks();
diff --git a/travail_de_groupe/chef_oeuvre/src/render.h b/travail_de_groupe/chef_oeuvre/src/render.h
index e48f6490fda5bab38584450152ee9c86df4130fd..a66e4e72c449a86699f7d63a720b45ca6bbfec39 100644
--- a/travail_de_groupe/chef_oeuvre/src/render.h
+++ b/travail_de_groupe/chef_oeuvre/src/render.h
@@ -12,6 +12,8 @@ extern SDL_Window *window;
 extern SDL_Renderer *renderer;
 extern SDL_DisplayMode screenDimension;
 extern SDL_Rect buttonRect;
+extern SDL_Rect playAgainButtonRect;
+extern SDL_Rect quitButtonRect;
 extern float timer;
 
 void drawHover(int x, int y);