diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin
index e54cf45c2a81c46f3da5bba2ce382f3aa65d7197..258dac4ebb4688af1595b78935cac62b354c5f44 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 2e20131c08b5e00ca0efc3f288568ff13eba939d..4183dedaae5296d826df03e9deec85e1598a610b 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 245e14138f7ab7cc7b0d64fc506744612c339ef3..85a7f8f9d153d181a070bf19d7ed561221db400e 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 59c76d3da0fbaba3be498d2fc4dd5a161317e9a2..88ad37ae3bc8ad3ce89f4d66df6309eb6bd2583f 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 34d9a297c5342af347b6757e0b6c7e7b2b507020..42c05b4bab676628bd5ab004bcfbf2c0323d1145 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 836c670f35bd46c99bcad5b2783dc79c9cf61fad..faa428ff1d91794eee99a8fa0404b0c22b3d5d17 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 74b875251a0cde725bd7e353d53f8ef10d36b6c1..8c667bcd48cc45a2d2c6b4306ef0f234f61bce68 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/app/SimulatorMain.class b/build/classes/java/main/app/SimulatorMain.class
index 4530cc2971636d0c78bcf91139a4f699c2f20eb4..1d13229f73ef27c233a432bc89aa3dffc086246a 100644
Binary files a/build/classes/java/main/app/SimulatorMain.class and b/build/classes/java/main/app/SimulatorMain.class differ
diff --git a/build/classes/java/main/controller/Controller.class b/build/classes/java/main/controller/Controller.class
index 9eb1bc490d02495ed5a13b135b23e4e02aa9327b..3a34ffe9c7dbb5b1aa846a298857f775cab236f9 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/controller/PersistentToggleGroup.class b/build/classes/java/main/controller/PersistentToggleGroup.class
index 5ccef4da42dee9301d32078f998d43094c421149..314954a9fd4ab6d48da5fec7067063879e670d62 100644
Binary files a/build/classes/java/main/controller/PersistentToggleGroup.class and b/build/classes/java/main/controller/PersistentToggleGroup.class differ
diff --git a/build/classes/java/main/model/Board.class b/build/classes/java/main/model/Board.class
index d2b9e0a8bf6b498a7e1e1cc7f100b7949948329e..38636074a072f0e4ce3549152ba24a266261d8c3 100644
Binary files a/build/classes/java/main/model/Board.class and b/build/classes/java/main/model/Board.class differ
diff --git a/build/classes/java/main/model/BoardBehavior.class b/build/classes/java/main/model/BoardBehavior.class
index a535dd85cfda4a470deba0064e805fc2465a72a1..056f9a3c8591df18076ad64c8d030b1ebbf2682b 100644
Binary files a/build/classes/java/main/model/BoardBehavior.class and b/build/classes/java/main/model/BoardBehavior.class differ
diff --git a/build/classes/java/main/model/BoardElement.class b/build/classes/java/main/model/BoardElement.class
index f13c75608e22866d9214df4c37452027e16e2464..90b50bc72887ccf13f50734ad591ce2a7ac47430 100644
Binary files a/build/classes/java/main/model/BoardElement.class and b/build/classes/java/main/model/BoardElement.class differ
diff --git a/build/classes/java/main/model/BoardFireFighterBehavior.class b/build/classes/java/main/model/BoardFireFighterBehavior.class
index 73035e5aa50a24d4a325bca8cd9ed33148697c76..cc5d3fe274ea94156143b99a0e3978ab018d05d0 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/BoardFirefighterProperties.class b/build/classes/java/main/model/BoardFirefighterProperties.class
index 3722f9e6332e6c930d36ee30fdf5089878b86ddb..a094b5badf9a5c8b929c25141e712d65a3445892 100644
Binary files a/build/classes/java/main/model/BoardFirefighterProperties.class and b/build/classes/java/main/model/BoardFirefighterProperties.class differ
diff --git a/build/classes/java/main/model/BoardProperties.class b/build/classes/java/main/model/BoardProperties.class
index 309b5e5207e85358e6ec9d55b56a577637ab5cc7..93736154cb1db5f0fd6077cdc429a64c015a59c3 100644
Binary files a/build/classes/java/main/model/BoardProperties.class and b/build/classes/java/main/model/BoardProperties.class differ
diff --git a/build/classes/java/main/model/ElementFactory.class b/build/classes/java/main/model/ElementFactory.class
index 5cf37726c12ba4bade2aaee9d5b2049d9e3e26fb..fc2bd74472da9eb0ad654c8764a26baf67bdf15d 100644
Binary files a/build/classes/java/main/model/ElementFactory.class and b/build/classes/java/main/model/ElementFactory.class differ
diff --git a/build/classes/java/main/model/Fire.class b/build/classes/java/main/model/Fire.class
index 24888cdc22f4bb980bc840cc2062512750ff19c7..12744497c0b4168a756584b31df839866c40bdf5 100644
Binary files a/build/classes/java/main/model/Fire.class and b/build/classes/java/main/model/Fire.class differ
diff --git a/build/classes/java/main/model/FireFactory.class b/build/classes/java/main/model/FireFactory.class
index cd2de694304566ad83e53b02f3ca95060dfe94dc..2f20734f25cb06826f8e78ac0d44c6d1014be12f 100644
Binary files a/build/classes/java/main/model/FireFactory.class and b/build/classes/java/main/model/FireFactory.class differ
diff --git a/build/classes/java/main/model/FireFighter.class b/build/classes/java/main/model/FireFighter.class
index 95da58b3d52ea957c4742b40524e4699481a927b..6a9fddbd22bf77ca244173120fa183fe11a127e6 100644
Binary files a/build/classes/java/main/model/FireFighter.class and b/build/classes/java/main/model/FireFighter.class differ
diff --git a/build/classes/java/main/model/FirefighterBoard.class b/build/classes/java/main/model/FirefighterBoard.class
index cf49fef0abe2cff1c5452936058ed02f3d28d7db..ebf0c3e8c4205ef081bcca66d853272df961b674 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/FirefighterFactory.class b/build/classes/java/main/model/FirefighterFactory.class
index e4dc8d8797f5941c778c89aee12d50fbbc53ec23..920e538c1bdada9fae8840e28871963a6761dd61 100644
Binary files a/build/classes/java/main/model/FirefighterFactory.class and b/build/classes/java/main/model/FirefighterFactory.class differ
diff --git a/build/classes/java/main/model/ModelElement.class b/build/classes/java/main/model/ModelElement.class
index 55c5477e85b71491e999808b143e4a9a6f246f78..155b653963166f37418e8bdaf6c396a855faacdd 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/model/PositionGenerator.class b/build/classes/java/main/model/PositionGenerator.class
index 556d364eed0180aa5daa8c56c559f0484d08c6e4..348edab54a85a9a8685f4479d5078d39bbe4928a 100644
Binary files a/build/classes/java/main/model/PositionGenerator.class and b/build/classes/java/main/model/PositionGenerator.class differ
diff --git a/build/classes/java/main/module-info.class b/build/classes/java/main/module-info.class
index 7a769b70875d147512dd0dc3f725d1c113981548..a05e120336680c15a80138be7c30617ca4e5473c 100644
Binary files a/build/classes/java/main/module-info.class and b/build/classes/java/main/module-info.class differ
diff --git a/build/classes/java/main/util/Position.class b/build/classes/java/main/util/Position.class
index 8e859130f0037dab2e4ebfc7d976894f8abe38ab..949d5a4547ec8c6b8f739aa883d42043f82a62ed 100644
Binary files a/build/classes/java/main/util/Position.class and b/build/classes/java/main/util/Position.class differ
diff --git a/build/classes/java/main/util/Strategy.class b/build/classes/java/main/util/Strategy.class
index 970de74442843b7dd05680aa1b504198ab066d92..eb66209f3dd056875eca5fc68f693422131591f0 100644
Binary files a/build/classes/java/main/util/Strategy.class and b/build/classes/java/main/util/Strategy.class differ
diff --git a/build/classes/java/main/util/TargetStrategy.class b/build/classes/java/main/util/TargetStrategy.class
index 21d04fa47c792c7b5afe2ceb0fdffa4470135de2..615d840c8b938f886069802d4128013485ef851c 100644
Binary files a/build/classes/java/main/util/TargetStrategy.class and b/build/classes/java/main/util/TargetStrategy.class differ
diff --git a/build/classes/java/main/view/FirefighterGrid.class b/build/classes/java/main/view/FirefighterGrid.class
index 2343d40902ddbfc3d1c8003c494c10d520884c6c..831699ca3ca58a17f7b79bad1d1464aeb6d30a4c 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/Grid.class b/build/classes/java/main/view/Grid.class
index 3d42b97050079349780725b186452a4ef88502d2..c4fa5e96b46909e2a89e512f2ad9c2d4d042260c 100644
Binary files a/build/classes/java/main/view/Grid.class and b/build/classes/java/main/view/Grid.class differ
diff --git a/build/classes/java/main/view/ViewElement.class b/build/classes/java/main/view/ViewElement.class
index c05e30406fdf683dec6eff659e3688f0078e4faf..86a80df8170c6a9d79066186cd5255f7bbbbe0c8 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/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index 61c84f5db84df19f0c69718127709f4ff377b8e0..e96d759e4acbb4033422ca03cceed662e81e8123 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 6fb36d03199880a29aa7274885107820c04ad6a1..0cbbaf91b1f847f4c2e1e7cd5eabca5c5634c82c 100644
--- a/src/main/java/model/BoardFireFighterBehavior.java
+++ b/src/main/java/model/BoardFireFighterBehavior.java
@@ -202,44 +202,56 @@ public class BoardFireFighterBehavior implements BoardBehavior{
     }
     private void generateRoads(int rowCount, int columnCount) {
         Random random = new Random();
-        int maxRoads = 3;  // Par exemple, générer 3 routes
-        int roadLength = 5; // Longueur de chaque route (5 cases)
 
-        for (int i = 0; i < maxRoads; i++) {
-            int startRow = random.nextInt(rowCount);  // L'index de départ de la route
-            int startCol = random.nextInt(columnCount);
+        // Définir les bords de départ et d'arrivée
+        int startRow = random.nextInt(rowCount); // Bord gauche
+        int endRow = random.nextInt(rowCount);   // Bord droit
+        int startCol = 0; // Bord gauche (colonne 0)
+        int endCol = columnCount - 1; // Bord droit (dernière colonne)
 
-            // Créer une route uniquement si la position est valide
-            if (canPlaceRoad(startRow, startCol, roadLength,columnCount)) {
-                placeRoad(startRow, startCol, roadLength);
+        // Générer une route connectant ces deux points
+        List<Position> path = createPath(new Position(startRow, startCol), new Position(endRow, endCol));
+
+        // Placer la route dans la grille
+        for (Position pos : path) {
+            if (!terrainMap.containsKey(pos)) { // Éviter les obstacles
+                terrainMap.put(pos, new Road(pos));
             }
         }
     }
 
-    private boolean canPlaceRoad(int startRow, int startCol, int roadLength,int columnCount) {
-        // Vérifier si la ligne droite de la route peut être placée sans dépasser les bords
-        if (startCol + roadLength >  columnCount) { // Vérifie si la route dépasse la largeur de la grille
-            return false;
-        }
+    /**
+     * Génère un chemin connectant deux positions.
+     */
+    private List<Position> createPath(Position start, Position end) {
+        List<Position> path = new ArrayList<>();
+        int currentRow = start.row();
+        int currentCol = start.column();
+
+        // Algorithme simple de connexion entre les points (chemin en "zigzag")
+        while (currentRow != end.row() || currentCol != end.column()) {
+            path.add(new Position(currentRow, currentCol));
+
+            // Mouvement vertical
+            if (currentRow < end.row()) {
+                currentRow++;
+            } else if (currentRow > end.row()) {
+                currentRow--;
+            }
 
-        // Vérifier que toutes les cases sont libres avant de placer la route
-        for (int i = 0; i < roadLength; i++) {
-            Position pos = new Position(startRow, startCol + i);
-            if (terrainMap.containsKey(pos)) {
-                return false;  // Une case est déjà occupée
+            // Mouvement horizontal
+            if (currentCol < end.column()) {
+                currentCol++;
+            } else if (currentCol > end.column()) {
+                currentCol--;
             }
         }
 
-        return true;
+        // Ajouter la position finale
+        path.add(end);
+        return path;
     }
 
-    private void placeRoad(int startRow, int startCol, int roadLength) {
-        // Placer une route (ligne droite) sur la grille
-        for (int i = 0; i < roadLength; i++) {
-            Position pos = new Position(startRow, startCol + i);
-            terrainMap.put(pos, new Road(pos));  // Placer une route à chaque case
-        }
-    }
 
 
     public static List<Position> getRocky() {
@@ -254,21 +266,13 @@ public class BoardFireFighterBehavior implements BoardBehavior{
         return neighbors;
     }
 
-    public static Movements getFireMovements() {
-        return fireMovements;
-    }
 
     public static TargetStrategy getTargetStrategy() {
         return targetStrategy;
     }
 
-    public static Movements getFireFighterMovements() {
-        return fireFighterMovements;
-    }
-
-
 
-    public Collection<Position> getFirefighterPositions() {
+    public static Collection<Position> getFirefighterPositions() {
         return fireFighterMovements.getPositions();
     }
 }
diff --git a/src/main/java/model/ElementGenerator.java b/src/main/java/model/ElementGenerator.java
new file mode 100644
index 0000000000000000000000000000000000000000..040c95ba935a0c2d216e83d7e1526a922b2e1c3d
--- /dev/null
+++ b/src/main/java/model/ElementGenerator.java
@@ -0,0 +1,5 @@
+package model;
+
+public interface ElementGenerator {
+   public void generateElement(int rowCount, int columnCount);
+}
diff --git a/src/main/java/model/FireMovements.java b/src/main/java/model/FireMovements.java
index da96795989f2ed8e45366c8f8249bd3dc36c7211..9e4afd72fee788d196a2efc081d46a25546d3291 100644
--- a/src/main/java/model/FireMovements.java
+++ b/src/main/java/model/FireMovements.java
@@ -47,7 +47,7 @@ public class FireMovements implements Movements{
                 // Si la position voisine est libre (non occupée par un feu ou un pompier), le feu peut se propager
                 for (Position neighbor : getNeighbors().get(fire)) {
                     // Vérifier si le feu peut se propager à cette position (pas de feu déjà là et pas un terrain bloqué)
-                    if (canMoveTo(neighbor, firePositions, (List<Position>) getFireFighterMovements().getPositions()) && !firePositions.contains(neighbor)) {
+                    if (canMoveTo(neighbor, firePositions, (List<Position>)getFirefighterPositions()) && !firePositions.contains(neighbor)) {
                         newFirePositions.add(neighbor);
                     }
                 }
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index 88e8b7dc5520c8caafa5126c4408860186c032f9..cf8e4e0631f8cf29a6c92ba9d77fa11de177166b 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -53,7 +53,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
             .forEach(pos -> result.add(new Fire(pos))); // Créer un objet Fire à partir de Position
 
     // Filtrage des éléments Firefighter (en transformant les positions en objets FireFighter)
-    behavior.getFireFighterMovements().getPositions().stream()
+    behavior.getFirefighterPositions().stream()
             .filter(pos -> pos.isAtPosition(position)) // Vérifier si la position correspond
             .forEach(pos -> result.add(new FireFighter(pos))); // Créer un objet Firefighter à partir de Position
     // Filtrage des éléments Cloud
diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java
index 065b1a2e8fc2b380a06924d0251acbf48590e026..642af23a3bfdcd08623f9ed95283535c8c342880 100644
--- a/src/main/java/view/ViewElement.java
+++ b/src/main/java/view/ViewElement.java
@@ -3,8 +3,8 @@ package view;
 import javafx.scene.paint.Color;
 
 public enum ViewElement {
-  FIREFIGHTER(Color.BLUE), FIRE(Color.RED), EMPTY(Color.WHITE) ,  CLOUD(Color.GRAY),MOTORIZED(Color.BLACK) , MOUNTAIN(Color.GREEN), ROCKY(Color.BISQUE),
-  ROAD(Color.BROWN);
+  FIREFIGHTER(Color.AQUA), FIRE(Color.RED), EMPTY(Color.WHITE) ,  CLOUD(Color.GRAY),MOTORIZED(Color.DARKBLUE) , MOUNTAIN(Color.DARKGRAY), ROCKY(Color.GREEN),
+  ROAD(Color.BLACK);
   final Color color;
   ViewElement(Color color) {
     this.color = color;