diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin
index 4b2b232d6014176a132436daa367c116d399b3e6..e93c865cf1b72472cfa682758e98c3bb522c8cad 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 6908cfd0b5aae04c4a2a1e855483ed99945119f4..31a3a0a39e4212e4bc2c34425978194b02bdcfe2 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 d495e7a842fe87fb2c87a0d2c6c8658c0087c62d..f45170b79721d972e35a42e3798d8da1c3dfb235 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 5704671eade6aaaf9fd222d4053099773d436456..d5807fc55d5cdf8cc4db7c81c513ad88e7990446 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 24099587cd19bf4d3f11064e66ce3b445421e1b1..361ed8b74ba2225b1a38375ee4383f86dda21659 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 ddd37d4352461add0ef41adf87dac87d5223acd6..1fa5114eb746698d290ca8906720c193c02e035f 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 b6f310615dab7bc112f147807fe635c2d2d217ce..1c537c58c8f903db8eeb2551e27ea4e4cbe95cad 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 ad5e48bc72e192051c4d9245a26063ab1c8c5aa9..4464d98f7f268fd5b894fa609ae2ce2ed9c8b61e 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 2eccc34b5dc9a494b36065cd0145c547e956965b..68d5fbf7aa7887e8aba2f4d66d95ef312b18474f 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 9c5c2cef955dc99130b9b74183c85f4994f213ea..d5195ecbba9119f20075394a02a0a5b90a74abca 100644
--- a/src/main/java/model/BoardFireFighterBehavior.java
+++ b/src/main/java/model/BoardFireFighterBehavior.java
@@ -94,53 +94,71 @@ public class BoardFireFighterBehavior implements BoardBehavior{
     }
     public List<Position> updateMotorized() {
         List<Position> modifiedPositions = new ArrayList<>();
-        List<Position> newMotorizedPositions = new ArrayList<>();
+        List<Position> newPositions = new ArrayList<>();
+
+        for (Position currentPosition : motorizedFighters) {
+            // Vérification de validité de la position actuelle
+            if (!neighbors.containsKey(currentPosition)) {
+                System.err.println("Position actuelle invalide : " + currentPosition);
+                newPositions.add(currentPosition);
+                continue;
+            }
+
+            // Étape 1 : Calcul du premier déplacement
+            Position firstStep = targetStrategy.neighborClosestToTarget(currentPosition, firePositions, neighbors);
+            if (firstStep == null || !neighbors.containsKey(firstStep)) {
+                // Aucun déplacement possible, rester sur place
+                System.out.println("Pas de première étape possible pour : " + currentPosition);
+                newPositions.add(currentPosition);
+                continue;
+            }
 
-        // Déplace chaque pompier motorisé et éteint les feux à proximité
-        for (Position motorizedPosition : motorizedFighters) {
-            // Crée une instance temporaire de MotorizedFireFighter
-            MotorizedFireFighter motorizedFirefighter = new MotorizedFireFighter(motorizedPosition);
+            // Étape 2 : Calcul du deuxième déplacement
+            Position secondStep = targetStrategy.neighborClosestToTarget(firstStep, firePositions, neighbors);
+            Position finalPosition = (secondStep != null && neighbors.containsKey(secondStep)) ? secondStep : firstStep;
 
-            // Déplace le pompier
-            Position newPosition = motorizedFirefighter.move(firePositions, neighbors);
+            // Ajout de la position finale aux nouvelles positions
+            newPositions.add(finalPosition);
 
-            // Éteindre les feux à la nouvelle position
-            extinguishFire(firePositions, newPosition, modifiedPositions);
+            // Mise à jour des positions modifiées
+            modifiedPositions.add(currentPosition);  // Ancienne position
+            modifiedPositions.add(finalPosition);    // Nouvelle position
 
-            // Mettre à jour les positions
-            newMotorizedPositions.add(newPosition);
-            modifiedPositions.add(motorizedPosition); // Ancienne position
-            modifiedPositions.add(newPosition);       // Nouvelle position
+            // Étape 3 : Éteindre les feux à la position finale
+            extinguish(finalPosition);
+            extinguishNearbyFires(finalPosition, modifiedPositions);
         }
 
-        // Met à jour la liste des positions des pompiers motorisés
-        motorizedFighters = newMotorizedPositions;
-
+        // Mettre à jour les positions globales
+        motorizedFighters = newPositions;
         return modifiedPositions;
     }
 
-
-    private void extinguish(Position position) {
-        firePositions.remove(position);
-    }
     /**
-     * Éteint les feux autour d'une position donnée.
+     * Éteint les feux à proximité d'une position donnée.
      *
-     * @param firePositions Les positions des feux actuels.
      * @param firefighterPosition La position actuelle du pompier.
-     * @param modifiedPositions Les positions modifiées pendant ce tour.
+     * @param modifiedPositions   Les positions modifiées pendant ce tour.
      */
-    protected void extinguishFire(Set<Position> firePositions, Position firefighterPosition, List<Position> modifiedPositions) {
-        List<Position> nearbyFires = neighbors.get(firefighterPosition).stream()
+    private void extinguishNearbyFires(Position firefighterPosition, List<Position> modifiedPositions) {
+        List<Position> nearbyFires = neighbors.getOrDefault(firefighterPosition, Collections.emptyList())
+                .stream()
                 .filter(firePositions::contains)
                 .toList();
         for (Position fire : nearbyFires) {
             firePositions.remove(fire);
             modifiedPositions.add(fire);
+            System.out.println("Feu éteint à : " + fire);
         }
     }
 
 
+    private void extinguish(Position position) {
+        firePositions.remove(position);
+    }
+
+
+
     public Set<Position> getFirePositions() {
         return firePositions;
     }
diff --git a/src/main/java/model/MotorizedFireFighter.java b/src/main/java/model/MotorizedFireFighter.java
index 7fe715559835557fcc61db62ea62d2d9a3e5ca02..4a88631dea86584bd0caac93644c8649a77bb8f0 100644
--- a/src/main/java/model/MotorizedFireFighter.java
+++ b/src/main/java/model/MotorizedFireFighter.java
@@ -5,12 +5,21 @@ import util.TargetStrategy;
 
 import java.util.*;
 
-public class MotorizedFireFighter extends FireFighter{
+public class MotorizedFireFighter extends BoardElement{
     private final TargetStrategy targetStrategy = new TargetStrategy();
     public MotorizedFireFighter(Position position) {
         super(position);
     }
 
+    @Override
+    public String getType() {
+        return "MotorizedFireFighter";
+    }
+
+    @Override
+    public String toString() {
+        return null;
+    }
 
 
     /**
@@ -24,15 +33,17 @@ public class MotorizedFireFighter extends FireFighter{
         // Première étape
         Position firstStep = targetStrategy.neighborClosestToTarget(getPosition(), firePositions, neighbors);
         if (firstStep == null) {
-            return getPosition(); // Pas de mouvement possible
+            return getPosition(); // Aucun déplacement possible
         }
 
         // Deuxième étape
         Position secondStep = targetStrategy.neighborClosestToTarget(firstStep, firePositions, neighbors);
-        Position newPosition = secondStep != null ? secondStep : firstStep;
 
         // Mise à jour de la position
-        setPosition(newPosition);
+        Position newPosition = (secondStep != null) ? secondStep : firstStep;
+        setPosition(newPosition); // Mettre à jour la position interne
         return newPosition;
     }
+
+
 }