diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin
index 1b04c929a7e6e8270dc77696abc06ecd9c56b77b..6741c512681214aa04e5d1d9d09f278133be9b06 100644
Binary files a/.gradle/8.10.2/executionHistory/executionHistory.bin and b/.gradle/8.10.2/executionHistory/executionHistory.bin differ
diff --git a/.gradle/8.10.2/executionHistory/executionHistory.lock b/.gradle/8.10.2/executionHistory/executionHistory.lock
index e20f18574181d8ff09e42dcf6caccef815f53ed2..5e253391d2b44a77de6450314cd2f8a3eee59b67 100644
Binary files a/.gradle/8.10.2/executionHistory/executionHistory.lock and b/.gradle/8.10.2/executionHistory/executionHistory.lock differ
diff --git a/.gradle/8.10.2/fileHashes/fileHashes.bin b/.gradle/8.10.2/fileHashes/fileHashes.bin
index 2b94c4ed959cc5773e8663685b0edf2ea4a98210..de4bee79ebbde603ea446bd1acc2538579b0c04e 100644
Binary files a/.gradle/8.10.2/fileHashes/fileHashes.bin and b/.gradle/8.10.2/fileHashes/fileHashes.bin differ
diff --git a/.gradle/8.10.2/fileHashes/fileHashes.lock b/.gradle/8.10.2/fileHashes/fileHashes.lock
index 3f9302b190923d39bb00d07a94bc8a04cebe5f6b..d337261118968ae302abf502a379b81ce3042e70 100644
Binary files a/.gradle/8.10.2/fileHashes/fileHashes.lock and b/.gradle/8.10.2/fileHashes/fileHashes.lock differ
diff --git a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin
index ca9f79172a257f13e1e007f6b1634f3278e887f2..8b7596b93d5b785bbd5c8577381965c0cef54afd 100644
Binary files a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin and b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index 287af6e1ca757eb1c80330e74e2596b23a3cb115..513e4c3656a446659afbd58d041574dc7193a9d8 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/build/classes/java/main/model/BoardFireFighterBehavior.class b/build/classes/java/main/model/BoardFireFighterBehavior.class
index 23937ecfb9fbe992d4ceb5471b0891d8bb9947ec..73c96608eed963e1df5de92bd48d2cc6f8272565 100644
Binary files a/build/classes/java/main/model/BoardFireFighterBehavior.class and b/build/classes/java/main/model/BoardFireFighterBehavior.class differ
diff --git a/build/classes/java/main/model/FirefighterBoard.class b/build/classes/java/main/model/FirefighterBoard.class
index e5546abb657938877a328311e38a6f60e909c7e5..cf49fef0abe2cff1c5452936058ed02f3d28d7db 100644
Binary files a/build/classes/java/main/model/FirefighterBoard.class and b/build/classes/java/main/model/FirefighterBoard.class differ
diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index 02f840310ffeae8d39057f746b3f0d133500205b..65a9666d853a2108b980d9edbe3acfdea3864d6f 100644
Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ
diff --git a/src/main/java/model/BoardFireFighterBehavior.java b/src/main/java/model/BoardFireFighterBehavior.java
index 53c01c6bcfe53673b99649da36049922bb7404c7..3e1d9f2303042b4e1448fa3df2ae6b1d45cae7be 100644
--- a/src/main/java/model/BoardFireFighterBehavior.java
+++ b/src/main/java/model/BoardFireFighterBehavior.java
@@ -87,6 +87,13 @@ public class BoardFireFighterBehavior implements BoardBehavior{
     @Override
     public void reset() {
         this.step=0;
+        // Vider toutes les positions stockées
+        fireMovements.getPositions().clear();
+        fireFighterMovements.getPositions().clear();
+        cloudMovements.getPositions().clear();
+        motorizedMovements.getPositions().clear();
+        rocky.clear();
+        terrainMap.clear();
 
     }
 
@@ -228,7 +235,7 @@ public class BoardFireFighterBehavior implements BoardBehavior{
     }
 
 
-    public List<Position> getRocky() {
+    public static List<Position> getRocky() {
         return rocky;
     }
 
@@ -253,6 +260,7 @@ public class BoardFireFighterBehavior implements BoardBehavior{
     }
 
 
+
     public Collection<Position> getFirefighterPositions() {
         return fireFighterMovements.getPositions();
     }
diff --git a/src/main/java/model/FireFighterMovements.java b/src/main/java/model/FireFighterMovements.java
index 6e1ded828c1572cde2a440e92f50659bd8e0412f..28278301c19db6722f8eed89a728b36e8f549b2c 100644
--- a/src/main/java/model/FireFighterMovements.java
+++ b/src/main/java/model/FireFighterMovements.java
@@ -25,39 +25,38 @@ public class FireFighterMovements implements Movements{
         List<Position> newFirefighterPositions = new ArrayList<>();
 
         for (Position firefighterPosition : firefighterPositions) {
-            // Calcul de la position vers laquelle le pompier devrait se déplacer
-            Position newFirefighterPosition =getTargetStrategy().neighborClosestToTarget(firefighterPosition, fireMovements.getPositions(), getNeighbors());
-
-            // Vérification si la position cible est valide pour le mouvement
-            if (canMoveTo(newFirefighterPosition, (Set<Position>) fireMovements.getPositions(), firefighterPositions)) {
-                // Si le déplacement est valide, on met à jour la position du pompier
+            // Trouver la position cible en excluant les montagnes et les positions non valides
+            Position newFirefighterPosition = getNeighbors().get(firefighterPosition).stream()
+                    .filter(pos -> !getRocky().contains(pos)) // Exclure montagnes
+                    .filter(pos -> canMoveTo(pos, (Set<Position>) fireMovements.getPositions(), firefighterPositions)) // Valider mouvements
+                    .findFirst()
+                    .orElse(firefighterPosition); // Reste sur place si aucun mouvement valide
+
+            if (!newFirefighterPosition.equals(firefighterPosition)) {
+                // Déplacer et éteindre feu
                 newFirefighterPositions.add(newFirefighterPosition);
-
-                // Éteindre le feu à la nouvelle position
                 extinguish(newFirefighterPosition);
                 modifiedPositions.add(firefighterPosition);
                 modifiedPositions.add(newFirefighterPosition);
 
-                // Vérification des voisins et extinction des feux voisins
+                // Éteindre les feux voisins accessibles
                 List<Position> neighborFirePositions = getNeighbors().get(newFirefighterPosition).stream()
-                        .filter(fireMovements.getPositions()::contains).toList();
-
-                // Log pour débogage
-                System.out.println("Pompiers se déplacent de " + firefighterPosition + " vers " + newFirefighterPosition);
+                        .filter(fireMovements.getPositions()::contains)
+                        .filter(pos -> !getRocky().contains(pos))
+                        .toList();
 
-                // Éteindre les feux voisins
                 for (Position firePosition : neighborFirePositions) {
                     extinguish(firePosition);
-                    modifiedPositions.add(firePosition);  // Ajout des feux éteints dans la liste des positions modifiées
+                    modifiedPositions.add(firePosition);
                 }
             } else {
-                // Si la position n'est pas valide, le pompier reste sur place
+                // Pompier reste sur place
                 newFirefighterPositions.add(firefighterPosition);
-                System.out.println("Pompier ne peut pas se déplacer à " + newFirefighterPosition + ", il reste à " + firefighterPosition);
+                System.out.println("Pompier bloqué à " + firefighterPosition);
             }
         }
 
-        // Mettre à jour la liste des positions des pompiers
+        // Mise à jour des positions des pompiers
         firefighterPositions = newFirefighterPositions;
         return modifiedPositions;
     }