diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index 5f015a47764f666890afa7140ac5f4693dad81d1..27d53ed364137f9cbbca468faa811d64a1d99048 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -65,14 +65,16 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
   @Override
   public List<ModelElement> getState(Position position) {
     List<ModelElement> result = new ArrayList<>();
-    for (Firefighter firefighter : firefighters)
-      if (firefighter.getPosition().equals(position))
-        result.add(ModelElement.FIREFIGHTER);
     for (Cloud cloud : clouds) {
       if (cloud.getPosition().equals(position)) {
         result.add(ModelElement.CLOUD);
       }
     }
+
+    for (Firefighter firefighter : firefighters)
+      if (firefighter.getPosition().equals(position))
+        result.add(ModelElement.FIREFIGHTER);
+
     if (fire.getFirePositions().contains(position))
       result.add(ModelElement.FIRE);
     return result;
@@ -95,8 +97,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
     }
     // Déplacer les nuages et éteindre les feux
     for (Cloud cloud : clouds) {
-      cloud.moveRandomly();
-      cloud.extinguishFire(fire);
+      //cloud.moveRandomly();
+      //cloud.extinguishFire(fire);
+      cloud.moveAndExtinguishFire(fire);
+      cloud.extinguishFireCloud(fire);
+      //modifiedPositions.addAll(fire.spreadFire());
+
     }
     step++;
 
@@ -127,7 +133,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
               .toList();
       for (Position firePosition : adjacentFires) {
         firefighter.extinguish(firePosition, fire.getFirePositions());
-        modifiedPosition.add(firePosition); // Ajouter la position comme modifiée
+        modifiedPosition.add(firePosition);
       }
 
     }
@@ -144,12 +150,13 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
   public void setState(List<ModelElement> state, Position position) {
     fire.getFirePositions().remove(position);
     firefighters.removeIf(f -> f.getPosition().equals(position));
+    clouds.removeIf(c -> c.getPosition().equals(position));
+
     for (ModelElement element : state) {
       switch (element) {
         case FIRE -> fire.getFirePositions().add(position);
         case FIREFIGHTER -> firefighters.add(new Firefighter(position));
         case CLOUD -> clouds.add(new Cloud(position, neighbors));
-
       }
     }
   }