diff --git a/travail_de_groupe/chef_oeuvre/src/fire.c b/travail_de_groupe/chef_oeuvre/src/fire.c
index 1ad72f870db3bd0d3c4d43ebbea64531f5a61115..971d301c518013c7456e2563ca8121d00e462be8 100644
--- a/travail_de_groupe/chef_oeuvre/src/fire.c
+++ b/travail_de_groupe/chef_oeuvre/src/fire.c
@@ -190,4 +190,51 @@ void nextFire(listchainfire_t listFire){
 
         listTemporary=listTemporary->next;   
     }
-} 
\ No newline at end of file
+} 
+
+listchainfire_t probabilitySpreadFire( listchainfire_t listFire, listchainfire_t listTemporary){
+    int probability;
+    fire_t fire; 
+ 
+    probability= rand()%4;
+    printf("proba:%d\n", probability);
+    printf("listfire1: x%d,y%d\n",(listFire->fire).x,(listFire->fire).y);
+
+    if((probability==0)&&((listTemporary->fire).x+1<MAPSIZE)){fire.state=1;
+        fire.x=(listTemporary->fire).x+1;
+        fire.y=(listTemporary->fire).y;
+        listFire=insertAheadFire(fire,listFire);
+        }
+    if ((probability==1)&&((listTemporary->fire).y+1<MAPSIZE)){fire.state=1;
+        fire.x=(listTemporary->fire).x;
+        fire.y=(listTemporary->fire).y+1;
+        listFire=insertAheadFire(fire,listFire);
+        }
+    if ((probability==2)&&((listTemporary->fire).y-1>=0)){fire.state=1;
+        fire.x=(listTemporary->fire).x;
+        fire.y=(listTemporary->fire).y-1;
+        listFire=insertAheadFire(fire,listFire);
+        }
+    if ((probability==3)&&((listTemporary->fire).x-1>=0)){fire.state=1;
+        fire.x=(listTemporary->fire).x-1;
+        fire.y=(listTemporary->fire).y;
+        listFire=insertAheadFire(fire,listFire);
+        }
+    printf("listtemp1: x%d,y%d\n",(listTemporary->fire).x,(listTemporary->fire).y);
+    printf("listfire2: x%d,y%d\n",(listFire->fire).x,(listFire->fire).y);
+    return listFire;
+}
+
+listchainfire_t spreadFire (listchainfire_t listFire){
+    listchainfire_t listTemporary=fireList;
+    srand(time(NULL));
+    while (!emptyListFire(listTemporary)){
+        if ((listTemporary->fire).state==4){
+            
+            listFire=probabilitySpreadFire(listFire, listTemporary); 
+            printf("listfire ajout: x%d,y%d\n",(listFire->fire).x,(listFire->fire).y);
+        }
+        listTemporary=listTemporary->next; 
+    }
+    return listFire;
+}
\ No newline at end of file
diff --git a/travail_de_groupe/chef_oeuvre/src/fire.h b/travail_de_groupe/chef_oeuvre/src/fire.h
index 84686a86881bd2a07895aea29ca00e907e8b387a..10ea4c300866e0e8df588e7fefbb8660c5ba6dcc 100644
--- a/travail_de_groupe/chef_oeuvre/src/fire.h
+++ b/travail_de_groupe/chef_oeuvre/src/fire.h
@@ -45,9 +45,12 @@ listchainfire_t deleteAheadFire(listchainfire_t);
 listchainfire_t deleteFire (listchainfire_t, int ,int );
 listchainfire_t freeListFire (listchainfire_t );
 listchainfire_t offFire (listchainfire_t, int,int );
-void travelFire(listchainfire_t listFire);
+void travelFire(listchainfire_t );
 void readFapFromFile(char * filename);
 void nextFire(listchainfire_t );
+listchainfire_t probabilitySpreadFire( listchainfire_t, listchainfire_t);
+listchainfire_t spreadFire (listchainfire_t );
+
 
 
 
diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c
index bcc85ad59639921ad3dc30517a143c10781e8da1..95d4c559eeb16f28c3a6bdd8c9e26ea4b3f2a417 100644
--- a/travail_de_groupe/chef_oeuvre/src/render.c
+++ b/travail_de_groupe/chef_oeuvre/src/render.c
@@ -385,7 +385,7 @@ void mainLoop(){
         delta = (a - b);
         if (delta > 1000/FPS_TO_GET){
             timer += delta;
-            //printf("timer : %f\n", timer/1000);
+            printf("timer : %d\n", (int)timer%1000);
             b = a;
             //printf("fps : %f", 1000/delta);
             switch (gameState){
@@ -393,8 +393,10 @@ void mainLoop(){
                     drawMenu();
                     break;
                 case GAME:
-                    if ((int)timer/1000 % UPDATETIME == 0){
+                    if ((int)timer % 1000 == 0){
                         nextFire(fireList);
+                        fireList=spreadFire(fireList);
+                        printf("after spread fire : x%d,y%d\n",(fireList->fire).x,(fireList->fire).y);
                     }
                     drawGame();
                     break;