diff --git a/.gitignore b/.gitignore
index 527e202a8bdab19e53364f5b71164202752e2635..f42a7a25a82ef0c5c6854f39348ae72acc178e2f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+run
+
 # Prerequisites
 *.d
 
diff --git a/travail_de_groupe/chef_oeuvre/markov.txt b/travail_de_groupe/chef_oeuvre/markov.txt
new file mode 100644
index 0000000000000000000000000000000000000000..dd3380684e771c77605b4c1344704b94bb324981
--- /dev/null
+++ b/travail_de_groupe/chef_oeuvre/markov.txt
@@ -0,0 +1,4 @@
+1 0 0 0
+0 1 0 0
+0 0 1 0
+0 0 0 1
\ No newline at end of file
diff --git a/travail_de_groupe/chef_oeuvre/src/fire.c b/travail_de_groupe/chef_oeuvre/src/fire.c
index 2c7d77a66d103743c94d577d0dcaec84bafcc56b..3a8f4b4dfd5bb58a8f8936e11866b0c3da940a0b 100644
--- a/travail_de_groupe/chef_oeuvre/src/fire.c
+++ b/travail_de_groupe/chef_oeuvre/src/fire.c
@@ -1,4 +1,7 @@
 #include "fire.h"
+#include "map.h"
+
+int markov[SIZEMARKOV][SIZEMARKOV];
 
 listchainfire_t initFire (void)
 {
@@ -108,3 +111,17 @@ listchainfire_t freeListFire (listchainfire_t listFire){
     }
     return listFire;
 }
+
+listchainfire_t offFire (listchainfire_t listFire, int x ,int y ){
+
+    if (emptyListFire(listFire)){
+        return(listFire);
+    }
+    if(((listFire->fire).x==x)&&((listFire->fire).y==y)) {
+        (listFire->fire).state=0; // feu eteint
+    }
+    else{
+        listFire->next=offFire(listFire->next,x,y);
+    }
+    return listFire; 
+}
diff --git a/travail_de_groupe/chef_oeuvre/src/fire.h b/travail_de_groupe/chef_oeuvre/src/fire.h
index 1e9ef245648a925b9ea128186a129706d789eadd..ce6b5a81f1145aaf7de6eb428a6b40703e923603 100644
--- a/travail_de_groupe/chef_oeuvre/src/fire.h
+++ b/travail_de_groupe/chef_oeuvre/src/fire.h
@@ -6,6 +6,8 @@
 #include <time.h>
 #include <stdio.h>
 
+#define SIZEMARKOV 4
+
 
 typedef struct fire{
     int x;
@@ -33,5 +35,6 @@ booleen_t searchFire(listchainfire_t, int ,int);
 listchainfire_t deleteAheadFire(listchainfire_t);
 listchainfire_t deleteFire (listchainfire_t, int ,int );
 listchainfire_t freeListFire (listchainfire_t );
+listchainfire_t offFire (listchainfire_t, int,int );
 
 #endif
\ No newline at end of file
diff --git a/travail_de_groupe/chef_oeuvre/src/player.c b/travail_de_groupe/chef_oeuvre/src/player.c
index 92e4f572490653856233d111a7ee48c3781139b5..09106266f5eab936922d592ba96df555976809bd 100644
--- a/travail_de_groupe/chef_oeuvre/src/player.c
+++ b/travail_de_groupe/chef_oeuvre/src/player.c
@@ -126,9 +126,8 @@ void manageMovement(){
 
 int selectStateHover(){
     int stateHover = 0;
-    int distance = sqrt(pow(abs(mousePosition.x-player.x), 2)+pow(abs(mousePosition.y-player.y), 2));
-    printf("distance : %d\n", distance);
-    if(distance <= 2){
+    int distance = sqrt(pow(abs(mousePosition.x - ((player.x+player.w/2))/CELLSIZE), 2)+pow(abs(mousePosition.y - ((player.y+player.h/2))/CELLSIZE), 2));
+    if(distance <= 1){
         stateHover = 1;
     }
     return stateHover;
diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c
index 0f1adc2be3369f5aa754b479c86a055ec4616a96..21fafd8e148ecbc4a7726d1c5f6da3afc13a3f31 100644
--- a/travail_de_groupe/chef_oeuvre/src/render.c
+++ b/travail_de_groupe/chef_oeuvre/src/render.c
@@ -17,6 +17,9 @@ SDL_Texture * treeTexture;
 SDL_Surface * hoverSurface;
 SDL_Texture * hoverTexture;
 
+SDL_Surface * noHoverSurface;
+SDL_Texture * noHoverTexture;
+
 SDL_Surface * playerSurface;
 SDL_Texture * playerTexture;
 
@@ -109,7 +112,12 @@ void drawMap(){
                 SDL_RenderCopy(renderer, treeTexture, NULL, &rect);
             }
             if (mousePosition.x == j && mousePosition.y == i){
-                SDL_RenderCopy(renderer, hoverTexture, NULL, &rect);
+                if (selectStateHover()){
+                    SDL_RenderCopy(renderer, hoverTexture, NULL, &rect);
+                }
+                else {
+                    SDL_RenderCopy(renderer, noHoverTexture, NULL, &rect);
+                }
             }
             rect.x += CELLSIZE;
         }
@@ -154,6 +162,9 @@ void mainLoop(){
     hoverSurface = IMG_Load("Res/hover.png");
     hoverTexture = SDL_CreateTextureFromSurface(renderer, hoverSurface);
 
+    noHoverSurface = IMG_Load("Res/noHover.png");
+    noHoverTexture = SDL_CreateTextureFromSurface(renderer, noHoverSurface);
+
     playerSurface = IMG_Load("Res/character_spritesheet.png");
     playerTexture = SDL_CreateTextureFromSurface(renderer, playerSurface);
 
@@ -177,6 +188,7 @@ void mainLoop(){
     SDL_FreeSurface(playButtonSurface);
     SDL_FreeSurface(playButtonHoverSurface);
     SDL_FreeSurface(backgroundSidesSurface);
+    SDL_FreeSurface(noHoverSurface);
 
     unsigned int a = SDL_GetTicks();
     unsigned int b = SDL_GetTicks();