diff --git a/travail_de_groupe/chef_oeuvre/Res/wonScreen.png b/travail_de_groupe/chef_oeuvre/Res/wonScreen.png
new file mode 100755
index 0000000000000000000000000000000000000000..c5159ef181c86500f845478a621bc28d85805d58
Binary files /dev/null and b/travail_de_groupe/chef_oeuvre/Res/wonScreen.png differ
diff --git a/travail_de_groupe/chef_oeuvre/src/gest_event.c b/travail_de_groupe/chef_oeuvre/src/gest_event.c
index cfaf1e2cc7323edc1ec1539138139c8c0f80aa61..3db27bee0477d6f82dd284ad0f9c2ba9f582d951 100644
--- a/travail_de_groupe/chef_oeuvre/src/gest_event.c
+++ b/travail_de_groupe/chef_oeuvre/src/gest_event.c
@@ -212,6 +212,7 @@ void *eventLoop(void *arg){
             case MENU : manageMenu();break;
             case GAME : manageGame();break;
             case LOSE : manageLost();break;
+            case WON : manageLost();break;
             default:printf("game state fault");break;
         }
     }
diff --git a/travail_de_groupe/chef_oeuvre/src/main.h b/travail_de_groupe/chef_oeuvre/src/main.h
index 3604248fe8252e88ac6148f5c29f5e03f17cfe1c..b352d3833f8f83dc08e9875d981e8252a5dff85a 100644
--- a/travail_de_groupe/chef_oeuvre/src/main.h
+++ b/travail_de_groupe/chef_oeuvre/src/main.h
@@ -24,6 +24,7 @@
 #define MENU 0
 #define GAME 1
 #define LOSE 2
+#define WON 3
 
 extern int running;
 extern int gameState;
diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c
index ad055c9aa9e5a15d8e477a2d4d14a08092bdf65f..10d6322c5e1af64b1b9b4f890107cdee1590a0bd 100644
--- a/travail_de_groupe/chef_oeuvre/src/render.c
+++ b/travail_de_groupe/chef_oeuvre/src/render.c
@@ -78,6 +78,9 @@ SDL_Texture * scoreTexture;
 SDL_Surface * nextFireSurface;
 SDL_Texture * nextFireTexture;
 
+SDL_Surface * backgroundWonSurface;
+SDL_Texture * backgroundWonTexture;
+
 void createWindow(){
 
     if (SDL_Init(SDL_INIT_VIDEO) != 0){
@@ -353,6 +356,19 @@ void drawLost(){
     SDL_RenderPresent(renderer);
 }
 
+void drawWon(){
+    SDL_Rect rect;
+    rect.h = screenDimension.h;
+    rect.w = screenDimension.w;
+    rect.x = 0;
+    rect.y = 0;
+    SDL_RenderCopy(renderer, backgroundWonTexture, NULL, &rect);
+    SDL_RenderCopy(renderer, playAgainButtonHoverTexture, NULL, &rect);
+    SDL_RenderCopy(renderer, quitButtonHoverTexture, NULL, &rect);
+    SDL_RenderCopy(renderer, playAgainButtonHoverTexture, NULL, &rect);
+    SDL_RenderPresent(renderer);
+}
+
 void mainLoop(){
     createWindow();
     initPlayer();
@@ -423,7 +439,8 @@ void mainLoop(){
     heartSurface = IMG_Load("Res/heart_spritesheet.png");
     heartTexture = SDL_CreateTextureFromSurface(renderer, heartSurface);
     
-
+    backgroundWonSurface = IMG_Load("Res/wonScreen.png");
+    backgroundWonTexture = SDL_CreateTextureFromSurface(renderer, backgroundWonTexture);
 
     SDL_FreeSurface(grassSurface);
     SDL_FreeSurface(treeSurface);
@@ -445,6 +462,7 @@ void mainLoop(){
     SDL_FreeSurface(quitButtonHoverSurface);
     SDL_FreeSurface(playAgainButtonHoverSurface);
     SDL_FreeSurface(heartSurface);
+    SDL_FreeSurface(backgroundWonSurface);
 
     playAgainButtonRect.x = (screenDimension.w * 700)/1920;
     playAgainButtonRect.y = (screenDimension.h * 615)/1080;
@@ -484,11 +502,18 @@ void mainLoop(){
                     }
                     //updateMap();
                     drawGame();
+                    if (fireList == NULL){
+                        gameState = WON;
+                    }
                     break;
 
                 case LOSE:
                     drawLost();
                     break;
+
+                case WON:
+                    drawWon();
+                    break;
             }
         }
         else {