diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin
index 305d8943306fe289cf74ab12d5f90adfb255bd13..d9005d1777945712c21df336288f49b1536dbeeb 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 0e7a907a35fa1296186c88360338f30ad0d21fba..202fedd4a0c33dd7452e76ee653df263ef983031 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 d80f73d5d153784c2653904efa6ad499aa2b1d52..26237891b883d2efb33362eab616931d969fa5d2 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 7f964308e83f5a94c21404dab2b1ef5069dc4544..fd6eb11de62d8a1380c454eda64c76dbbd9426dd 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 237c0290c7b4ac2e6de64c46cbfa42b22cce4343..37e3812235cfa7f2f06c68e37405e5053db2aa1d 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 be3045945a5b937c7918772e67d21c2ef749c764..9eba45426e148904a2494131d499cc59676d57de 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/build/classes/java/main/app/SimulatorApplication.class b/build/classes/java/main/app/SimulatorApplication.class
index 92a2b722540ae8ae1d5c93881b90cfc08d162c5a..eadcb283719be38f0c73cf3c649f55673d10ee0e 100644
Binary files a/build/classes/java/main/app/SimulatorApplication.class and b/build/classes/java/main/app/SimulatorApplication.class differ
diff --git a/build/classes/java/main/controller/Controller.class b/build/classes/java/main/controller/Controller.class
index d065bd5dfaab8640cbea20806d61f79d0867da45..1f4f51d3c4da6dd5faadbc1331eafad5adb41878 100644
Binary files a/build/classes/java/main/controller/Controller.class and b/build/classes/java/main/controller/Controller.class differ
diff --git a/build/classes/java/main/model/FirefighterBoard$1.class b/build/classes/java/main/model/FirefighterBoard$1.class
index c678800e340a424d63f8419f3426761f04bc6d45..119af8394727bb7d71d86b6a356f890372fb769b 100644
Binary files a/build/classes/java/main/model/FirefighterBoard$1.class and b/build/classes/java/main/model/FirefighterBoard$1.class differ
diff --git a/build/classes/java/main/model/FirefighterBoard.class b/build/classes/java/main/model/FirefighterBoard.class
index 439370a9cf3e81f943e985a67690580dd7b49b3b..476abb627665fca8fdb32894934b0362bbdf463b 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/classes/java/main/model/ModelElement.class b/build/classes/java/main/model/ModelElement.class
index ef86abea6c0b56da02b5a42cfd91a39108401c81..a754112236156144fdccdb51883328300f1874a3 100644
Binary files a/build/classes/java/main/model/ModelElement.class and b/build/classes/java/main/model/ModelElement.class differ
diff --git a/build/classes/java/main/view/FirefighterGrid.class b/build/classes/java/main/view/FirefighterGrid.class
index f8689dddb9f3d7f8bc408a1c0db69f5a41101aaf..64f0b49ed5863b2a25cce8a921606eef79bfabdb 100644
Binary files a/build/classes/java/main/view/FirefighterGrid.class and b/build/classes/java/main/view/FirefighterGrid.class differ
diff --git a/build/classes/java/main/view/ViewElement.class b/build/classes/java/main/view/ViewElement.class
index 4ab2b334e3ac1fb502c67b8dbded51f09ca58b02..9e776bc14ee8cfc60beaf454877354f5567ee0ca 100644
Binary files a/build/classes/java/main/view/ViewElement.class and b/build/classes/java/main/view/ViewElement.class differ
diff --git a/build/libs/firefighter-all.jar b/build/libs/firefighter-all.jar
index 4d96d916601c71cff5491caa76660f7f282a2ed4..619374e47ddcafe0763e346a06e42f6272b0da1b 100644
Binary files a/build/libs/firefighter-all.jar and b/build/libs/firefighter-all.jar differ
diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index d38261c5ea666b69194f24f866e82c0568dfcdd1..58ae24dcaf66a6cc3c32cff70f21ceaf68ec0956 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/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java
index c3f4ee625b977c0226cb64ceea50266d6efd497a..4fa02fdd7bd885a96f6f2afbce76c95dbfe91db2 100644
--- a/src/main/java/app/SimulatorApplication.java
+++ b/src/main/java/app/SimulatorApplication.java
@@ -18,10 +18,11 @@ public class SimulatorApplication extends javafx.application.Application {
     private static final int BOX_WIDTH = 30;
     private static final int BOX_HEIGHT = 30;
     public static final int INITIAL_FIRE_COUNT = 5;
-    public static final int INITIAL_FIREFIGHTER_COUNT = 5;
-    public static final int  INITIAL_ROAD_COUNT = 20;
-    public static final int  INITIAL_CLOUD_COUNT = 3;
+    public static final int INITIAL_FIREFIGHTER_COUNT = 4;
+    public static final int  INITIAL_ROAD_COUNT = 10;
+    public static final int  INITIAL_CLOUD_COUNT = 5;
     public static final int  INITIAL_MOUTAIN_COUNT = 5;
+    public static final int  INITIAL_FIRE_TRUCK_COUNT = 2;
     public static final int  INITIAL_ROCKS_COUNT = 5;
 
     private Stage primaryStage;
@@ -50,7 +51,7 @@ public class SimulatorApplication extends javafx.application.Application {
 
         Controller controller = loader.getController();
         controller.initialize(BOX_WIDTH, BOX_HEIGHT, COLUMN_COUNT, ROW_COUNT,
-                INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT, INITIAL_ROAD_COUNT,INITIAL_CLOUD_COUNT, INITIAL_MOUTAIN_COUNT, INITIAL_ROCKS_COUNT);
+                INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT, INITIAL_ROAD_COUNT,INITIAL_CLOUD_COUNT, INITIAL_MOUTAIN_COUNT, INITIAL_ROCKS_COUNT, INITIAL_FIRE_TRUCK_COUNT);
     }
 
     private void showScene() {
diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java
index fd265eb44ebb73210ad4782931fd4772a2318c38..b4d158c58e47569f10a25d9bec15741d10259110 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -33,9 +33,9 @@ public class Controller {
   @FXML
   private FirefighterGrid grid;
 
-  public void initialize(int boxWidth, int boxHeight, int columns, int rows, int fireCount, int firefighterCount, int initialRoadCount,int initialcloudCount, int initialMountainsCount, int initialRocksCount) {
+  public void initialize(int boxWidth, int boxHeight, int columns, int rows, int fireCount, int firefighterCount, int initialRoadCount,int initialcloudCount, int initialMountainsCount, int initialRocksCount, int initialFiretruckCount) {
     // Initialize the simulation board and connect it to the grid
-    board = new FirefighterBoard(columns, rows, fireCount, firefighterCount, initialRoadCount,initialcloudCount, initialMountainsCount, initialRocksCount);
+    board = new FirefighterBoard(columns, rows, fireCount, firefighterCount, initialRoadCount,initialcloudCount, initialMountainsCount, initialRocksCount, initialFiretruckCount);
     grid.initialize(columns, rows, boxWidth, boxHeight, board);
 
     // Initialize timeline for automatic progression
@@ -45,6 +45,10 @@ public class Controller {
     // Ensure initial UI state is consistent
     updateGenerationLabel();
     pauseToggleButton.setSelected(true);
+    stopSimulation();
+    board.reset();
+    grid.repaint();
+    updateGenerationLabel();
   }
 
 
diff --git a/src/main/java/model/FireTruckmovmentStrategy.java b/src/main/java/model/FireTruckmovmentStrategy.java
new file mode 100644
index 0000000000000000000000000000000000000000..b544e9b5b72d7538075a1792cffc2e900e25fd31
--- /dev/null
+++ b/src/main/java/model/FireTruckmovmentStrategy.java
@@ -0,0 +1,155 @@
+package model;
+
+import util.Position;
+import util.TargetStrategy;
+
+import java.util.*;
+
+public class FireTruckmovmentStrategy implements Strategy {
+    private final TargetStrategy targetStrategy = new TargetStrategy();
+    private List<Position> fireTruckPositions;
+    private final Set<Position> firePositions;
+    private final Map<Position, List<Position>> neighbors;
+
+    public FireTruckmovmentStrategy(List<Position> firefighterPositions, Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
+        this.fireTruckPositions = firefighterPositions;
+        this.firePositions = firePositions;
+        this.neighbors = neighbors;
+    }
+
+    @Override
+    public List<Position> update() {
+        List<Position> modifiedPositions = new ArrayList<>();
+        List<Position> newFirefighterPositions = new ArrayList<>();
+
+        for (Position fireTruckPosition : fireTruckPositions) {
+            Position firstStep = nextValidPosition(fireTruckPosition ); // First step
+            extinguishNearbyFires(firstStep, modifiedPositions);         // Extinguish after first step
+
+            Position secondStep = nextValidPosition(firstStep);          // Second step
+            extinguishNearbyFires(secondStep, modifiedPositions);        // Extinguish after second step
+
+            // Update positions
+            newFirefighterPositions.add(secondStep);
+            modifiedPositions.add(fireTruckPosition ); // Original position
+            modifiedPositions.add(firstStep);           // First step position
+            modifiedPositions.add(secondStep);          // Second step position
+        }
+
+        fireTruckPositions = newFirefighterPositions; // Update firefighter positions
+        return modifiedPositions;
+    }
+
+    private Position nextValidPosition(Position currentPosition) {
+        return targetStrategy.neighborClosestToFire(currentPosition, firePositions, neighbors);
+    }
+
+    private void extinguishNearbyFires(Position position, List<Position> modifiedPositions) {
+        List<Position> firesToExtinguish = new ArrayList<>(neighbors.getOrDefault(position, List.of()));
+        firesToExtinguish.add(position);               // Include current position
+        firesToExtinguish.removeIf(pos -> !firePositions.contains(pos)); // Only include actual fires
+
+        extinguishAll(firesToExtinguish);
+        modifiedPositions.addAll(firesToExtinguish);   // Track extinguished fires
+    }
+
+    private void extinguishAll(List<Position> positions) {
+        firePositions.removeAll(positions);
+    }
+
+    @Override
+    public List<Position> getModelPositions() {
+        return fireTruckPositions;
+    }
+
+    @Override
+    public Set<Position> getFirePositions() {
+        return firePositions;
+    }
+}
+
+
+/*package model;
+
+import util.Position;
+import util.TargetStrategy;
+
+
+import java.util.*;
+
+public class FireTruckmovmentStrategy implements Strategy{
+    private final TargetStrategy targetStrategy = new TargetStrategy();
+    private List<Position> FireTruckPositions;
+    private final Set<Position> firePositions;
+    private final Map<Position, List<Position>> neighbors;
+
+    public FireTruckmovmentStrategy(List<Position> fireTruckPositions, Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
+        this.FireTruckPositions = fireTruckPositions;
+        this.firePositions = firePositions;
+        this.neighbors = neighbors;
+    }
+
+    @Override
+    public List<Position> update() {
+        List<Position> modifiedPositions = new ArrayList<>();
+        List<Position> newFireTruckPositions = new ArrayList<>();
+
+        for (Position fireTruckPosition : FireTruckPositions) {
+            // Perform two steps for each fire truck
+            for (int step = 0; step < 2; step++) {
+                Position nextPosition = NextValidPosition(fireTruckPosition);
+
+                // Identify fires to extinguish around the next position
+                List<Position> firesToExtinguish = new ArrayList<>(neighbors.getOrDefault(nextPosition, List.of()));
+                firesToExtinguish.add(nextPosition);
+                firesToExtinguish.removeIf(pos -> !firePositions.contains(pos));
+
+                // Extinguish fires
+                extinguishAll(firesToExtinguish);
+                modifiedPositions.addAll(firesToExtinguish);
+
+                // Track positions
+                modifiedPositions.add(fireTruckPosition);
+                modifiedPositions.add(nextPosition);
+
+                // Update fire truck position for the next step
+                fireTruckPosition = nextPosition;
+            }
+
+            // Store the final position of the fire truck after two steps
+            newFireTruckPositions.add(fireTruckPosition);
+        }
+
+        // Update fire truck positions
+        FireTruckPositions = newFireTruckPositions;
+        return modifiedPositions;
+    }
+
+
+    private Position NextValidPosition(Position currentPosition) {
+        Position target = targetStrategy.neighborClosestToFire(currentPosition, firePositions, neighbors);
+        return target;
+    }
+
+    private void extinguishAll(List<Position> positions) {
+        firePositions.removeAll(positions);
+    }
+
+
+    @Override
+    public List<Position> getModelPositions() {
+        return FireTruckPositions;
+    }
+
+    @Override
+    public Set<Position> getFirePositions() {
+        return firePositions;
+    }
+}*/
+
+
+
+
+
+
+
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index 4255afb848f7d125992177b185f673ab9aa770c1..e079b5953ae998606efe9c3410f52a8d18f85c0a 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -14,6 +14,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
     private final int initialRoadCount;
     private final int initialcloudCount;
     private final int initialmountainsCount;
+    private final int initialFireTruckCount;
     private final int initialrocksCount;
 
     private List<Position> firefighterPositions;
@@ -24,11 +25,13 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
     private List<Position> cloudPositions;
     private Set<Position> moutainsPositions;
     private Set<Position> rocksPositions;
+    private  List<Position> fireTruckPositions;
 
     private int step = 0;
 
     // Constructor for FirefighterBoard
-    public FirefighterBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount, int initialRoadCount, int initialcloudCount, int initialmountainsCount, int initialrocksCount) {
+    public FirefighterBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount, int initialRoadCount,
+                            int initialcloudCount, int initialmountainsCount, int initialFireTruckCount, int initialrocksCount) {
         this.columnCount = columnCount;
         this.rowCount = rowCount;
         this.initialFireCount = initialFireCount;
@@ -37,6 +40,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
         this.initialcloudCount = initialcloudCount;
         this.initialmountainsCount = initialmountainsCount;
         this.initialrocksCount = initialrocksCount;
+        this.initialFireTruckCount = initialFireTruckCount;
 
         this.positions = new Position[rowCount][columnCount];
         this.firefighterPositions = new ArrayList<>();
@@ -46,6 +50,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
         this.moutainsPositions = new HashSet<>();
         this.roadPositions = new HashSet<>();
         this.rocksPositions = new HashSet<>();
+        this.fireTruckPositions = new ArrayList<>();
 
         initializeBoard();
     }
@@ -78,6 +83,10 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
         for (int i = 0; i < initialrocksCount; i++) {
             rocksPositions.add(new Position(random.nextInt(rowCount), random.nextInt(columnCount)));
         }
+        // Initialize FireTruck Positions
+        for (int i = 0; i < initialFireTruckCount; i++) {
+            fireTruckPositions.add(new Position(random.nextInt(rowCount), random.nextInt(columnCount)));
+        }
 
 
         // Initialize neighbors map
@@ -133,6 +142,11 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
                         result.add(ModelElement.ROCKS);
                     }
                 }
+                case FIRETRUCK -> {
+                    if (fireTruckPositions.contains(position)) {
+                        result.add(ModelElement.FIRETRUCK);
+                    }
+                }
                 default ->{
                 }
             }
@@ -158,13 +172,16 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
     @Override
     public void reset() {
         step = 0;
-        Initializer initializer = new Initializer(columnCount,rowCount,initialFireCount,initialFirefighterCount, initialRoadCount,initialcloudCount, initialmountainsCount, initialrocksCount);
+        Initializer initializer = new Initializer(columnCount,rowCount,initialFireCount,initialFirefighterCount,
+                initialRoadCount,initialcloudCount, initialmountainsCount, initialFireTruckCount,initialrocksCount);
+
         resetPos(firePositions,initializer.getFirePositions());
         resetPos(firefighterPositions,initializer.getFirefighterPositions());
         resetPos(cloudPositions,initializer.getCloudPositions());
         resetPos(moutainsPositions,initializer.getMountainsPositions());
         resetPos(roadPositions,initializer.getRoadPositions());
         resetPos(rocksPositions,initializer.getRoadPositions());
+        resetPos(fireTruckPositions,initializer.getFireTruckPositions());
 
         neighbors.clear();
         neighbors.putAll(initializer.getNeighbors());
@@ -180,12 +197,14 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
     public void setState(List<ModelElement> state, Position position) {
         firePositions.remove(position);
         firefighterPositions.remove(position);
+        fireTruckPositions.remove(position);
 
         for (ModelElement element : state) {
             switch (element) {
                 case FIRE -> firePositions.add(position);
                 case FIREFIGHTER -> firefighterPositions.add(position);
                 case CLOUD -> cloudPositions.add(position);
+                case FIRETRUCK -> fireTruckPositions.add(position);
             }
         }
     }
@@ -195,7 +214,8 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
         List<ModelElement> elements = List.of(
                 ModelElement.FIRE,
                 ModelElement.FIREFIGHTER,
-                ModelElement.CLOUD
+                ModelElement.CLOUD,
+                ModelElement.FIRETRUCK
         );
         List<Position> modifiedPositions = new ArrayList<>();
 
@@ -204,6 +224,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
                 case FIRE -> new SimpleFireSpreadStrategy(firePositions, neighbors,moutainsPositions,roadPositions, rocksPositions,step);
                 case FIREFIGHTER -> new FirefighterMovementStrategy(firefighterPositions,firePositions,neighbors);
                 case CLOUD -> new CloudStrategy(cloudPositions,firePositions,neighbors,rowCount,columnCount);
+                case FIRETRUCK -> new FirefighterMovementStrategy(fireTruckPositions,firePositions,neighbors);
                 default -> throw new IllegalStateException("Type de modèle inconnu : " + element);
             };
             modifiedPositions.addAll(strategy.update());
@@ -212,6 +233,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
                 case FIRE -> firePositions = strategy.getFirePositions();
                 case FIREFIGHTER -> firefighterPositions = strategy.getModelPositions();
                 case CLOUD -> cloudPositions = strategy.getModelPositions();
+                case FIRETRUCK -> fireTruckPositions = strategy.getModelPositions();
             }
         }
         step++;
@@ -225,7 +247,6 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
         for (Position firePosition : firePositions) {
             updatedElements.add(new Pair<>(firePosition, ModelElement.FIRE));
         }
-
         // Add firefighter positions
         for (Position firefighterPosition : firefighterPositions) {
             updatedElements.add(new Pair<>(firefighterPosition, ModelElement.FIREFIGHTER));
@@ -233,16 +254,16 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
         for (Position cloudPosition : cloudPositions) {
             updatedElements.add(new Pair<>(cloudPosition, ModelElement.CLOUD));
         }
-        // Add firefighter positions
-        for (Position cloudPosition : cloudPositions) {
-            updatedElements.add(new Pair<>(cloudPosition, ModelElement.CLOUD));
-        }
         for (Position roadPosition : roadPositions) {
             updatedElements.add(new Pair<>(roadPosition, ModelElement.ROAD));
         }
         for (Position moutainPosition : moutainsPositions){
             updatedElements.add(new Pair<>(moutainPosition, ModelElement.MOUTAIN));
         }
+        for (Position FireTruckPosition : fireTruckPositions){
+            System.out.println(FireTruckPosition);
+            updatedElements.add(new Pair<>(FireTruckPosition, ModelElement.FIRETRUCK));
+        }
         for (Position rockPosition : rocksPositions){
             updatedElements.add(new Pair<>(rockPosition,ModelElement.ROCKS));
         }
diff --git a/src/main/java/model/Initializer.java b/src/main/java/model/Initializer.java
index 07cff900ecce9bb6161865cd6d0e54f34919f330..3fc0707522557576777fc8cd01ae47e64544b36a 100644
--- a/src/main/java/model/Initializer.java
+++ b/src/main/java/model/Initializer.java
@@ -14,6 +14,7 @@ public class Initializer {
     private final int initialRoadCount;
     private final int initialcloudCount;
     private final int initialMoutainCount;
+    private final int initialFireTruckCount;
     private final int initialRocksCount;
 
 
@@ -24,13 +25,14 @@ public class Initializer {
     private final Set<Position> firePositions;
     private final List<Position> cloudPositions;
     private final Set<Position> mountainsPositions;
+    private final List<Position> FireTruckPositions;
     private final Set<Position> rocksPositions;
     private int step = 0;
 
     private final Random randomGenerator = new Random();
 
 
-    public Initializer(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount, int initialRoadCount,int initialcloudCount, int initialMoutainCount,int initialRocksCount) {
+    public Initializer(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount, int initialRoadCount,int initialcloudCount, int initialMoutainCount, int initialFireTruckCount,int initialRocksCount) {
         this.columnCount = columnCount;
         this.rowCount = rowCount;
         this.initialFireCount = initialFireCount;
@@ -39,6 +41,7 @@ public class Initializer {
         this.initialcloudCount = initialcloudCount;
         this.initialMoutainCount = initialMoutainCount;
         this.initialRocksCount = initialRocksCount;
+        this.initialFireTruckCount = initialFireTruckCount;
 
         this.positions = new Position[rowCount][columnCount];
         this.neighbors = new HashMap<>();
@@ -47,6 +50,7 @@ public class Initializer {
         this.RoadPositions = new ArrayList<>();
         this.cloudPositions = new ArrayList<>();
         this.mountainsPositions = new HashSet<>();
+        this.FireTruckPositions = new ArrayList<>();
         this.rocksPositions = new HashSet<>();
         initializePositions();
         initializeNeighbors();
@@ -78,6 +82,7 @@ public class Initializer {
         initializeRoadPositions();
         initializeCloudsPositions();
         initializeMoutainsPositions();
+        initializeFireTruckPositions();
         initializeRocksPositions();
 
     }
@@ -92,6 +97,10 @@ public class Initializer {
     private void initializeCloudsPositions() {
         addRandomPositions(cloudPositions, initialcloudCount);
     }
+    private void initializeFireTruckPositions() {
+        addRandomPositions(FireTruckPositions, initialFireTruckCount);
+    }
+
     private void initializeMoutainsPositions() {addRandomPositions(mountainsPositions, initialMoutainCount);}
     private void initializeRocksPositions() {addRandomPositions(rocksPositions, initialRocksCount);}
 
@@ -151,6 +160,9 @@ public class Initializer {
     public Set<Position> getMountainsPositions() {
         return mountainsPositions;
     }
+    public List<Position> getFireTruckPositions() {
+        return FireTruckPositions;
+    }
     public Set<Position> getRocksPositions() {
         return rocksPositions;
     }
diff --git a/src/main/java/model/ModelElement.java b/src/main/java/model/ModelElement.java
index 8db860b59e5e2906e2611e3414241c326a4353f0..4fec322be591854f3bc25fe18d457b98fb9e4781 100644
--- a/src/main/java/model/ModelElement.java
+++ b/src/main/java/model/ModelElement.java
@@ -2,7 +2,7 @@ package model;
 
 
 public enum ModelElement {
-  FIREFIGHTER("blue"), FIRE("red"), CLOUD("darkgrey"),ROAD("grey"),EMPTY("white"), MOUTAIN("brown"), ROCKS("lightBrown");
+  FIREFIGHTER("blue"), FIRE("red"), CLOUD("darkgrey"),ROAD("grey"),EMPTY("white"), MOUTAIN("brown"),FIRETRUCK("orange"),ROCKS("lightBrown");
 
   private final String color;
 
diff --git a/src/main/java/view/FirefighterGrid.java b/src/main/java/view/FirefighterGrid.java
index 453da0f232ca7f935532361f39568255a096d724..c6f94db7f193e33cddda6ac4ba705a656e111a5b 100644
--- a/src/main/java/view/FirefighterGrid.java
+++ b/src/main/java/view/FirefighterGrid.java
@@ -8,7 +8,7 @@ import model.ModelElement;
 import model.FirefighterBoard;
 import util.Position;
 
-public class FirefighterGrid extends Canvas  {
+public class FirefighterGrid extends Canvas {
 
     private int columns;
     private int rows;
@@ -41,13 +41,15 @@ public class FirefighterGrid extends Canvas  {
             // Set the color based on the element type
             if (element == ModelElement.FIRE) {
                 gc.setFill(Color.RED);  // Fire is red
-            } else if (element == ModelElement.FIREFIGHTER) {
+            }else if (element == ModelElement.FIREFIGHTER) {
                 gc.setFill(Color.BLUE);  // Firefighter is blue
-            } else if (element == ModelElement.ROAD) {
+            }else if (element== ModelElement.ROAD){
                 gc.setFill(Color.WHITE);
-            } else if (element == ModelElement.CLOUD) {
+            }else if (element == ModelElement.CLOUD) {
                 gc.setFill(Color.YELLOW);
-            } else if (element == ModelElement.MOUTAIN) {
+            }else if (element == ModelElement.FIRETRUCK) {
+                gc.setFill(Color.ORANGE);
+            }else if (element == ModelElement.MOUTAIN) {
                 gc.setFill(Color.GREEN);
             } else if (element == ModelElement.ROCKS) {
                 gc.setFill(Color.LIGHTSKYBLUE);
diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java
index 957df8f7b5de19166fa715769c5e45131a2f44e0..384dd61254e15b4f85a2edbc534387f0f2882f15 100644
--- a/src/main/java/view/ViewElement.java
+++ b/src/main/java/view/ViewElement.java
@@ -3,7 +3,7 @@ package view;
 import javafx.scene.paint.Color;
 
 public enum ViewElement {
- ROAD(Color.GRAY), FIREFIGHTER(Color.BLUE), FIRE(Color.RED), EMPTY(Color.WHITE),CLOUD(Color.YELLOW),MOUTAIN(Color.GREEN),ROCKS(Color.LIGHTSKYBLUE);
+ ROAD(Color.GRAY), FIREFIGHTER(Color.BLUE), FIRE(Color.RED), EMPTY(Color.WHITE),CLAUD(Color.YELLOW),FIRETRUCK(Color.ORANGE),ROCKS(Color.LIGHTSKYBLUE);
 
   final Color color;