diff --git a/src/main/java/model/Firefighter.java b/src/main/java/model/Firefighter.java
index f087ba6eee886d691cfdbed52936b818d995bcd4..04111689c1dea1a6ead9516253c851e9be1fe5d4 100644
--- a/src/main/java/model/Firefighter.java
+++ b/src/main/java/model/Firefighter.java
@@ -24,10 +24,31 @@ public class Firefighter {
         this.position = position;
     }
 
-    public Position moveToBestPosition(TargetStrategy targetStrategy, Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
+    /*public Position moveToBestPosition(TargetStrategy targetStrategy, Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
         return targetStrategy.neighborClosestToFire(position, firePositions, neighbors);
+    }*/
+    public Position moveToBestPosition(Set<Position> firePositions, Map<Position, List<Position>> neighbors, Set<Position> mountains) {
+        Position currentPosition = getPosition();
+        Position bestPosition = currentPosition;
+        int minDistance = Integer.MAX_VALUE;
+
+        for (Position neighbor : neighbors.get(currentPosition)) {
+            if (mountains.contains(neighbor)) continue;  // Ignore les montagnes
+
+            // Rechercher le feu le plus proche depuis le voisin
+            for (Position firePosition : firePositions) {
+                int distance = Math.abs(firePosition.row() - neighbor.row()) + Math.abs(firePosition.column() - neighbor.column());
+                if (distance < minDistance) {
+                    minDistance = distance;
+                    bestPosition = neighbor;
+                }
+            }
+        }
+
+        return bestPosition; // Retourne la meilleure position parmi les voisines
     }
 
+
     public void extinguish(Position position, Set<Position> firePositions) {
         firePositions.remove(position);
     }