From e137d5a15c9baccd631dbb2759e374a128b2bbb0 Mon Sep 17 00:00:00 2001
From: AREZKI Celia <celia.arezki.1@etu.univ-amu.fr>
Date: Thu, 28 Nov 2024 16:28:32 +0100
Subject: [PATCH] BoardFireFighterBehavior : DISPLAY the clouds on board

---
 src/main/java/app/SimulatorApplication.java       | 3 ++-
 src/main/java/controller/Controller.java          | 4 ++--
 src/main/java/model/BoardFireFighterBehavior.java | 9 ++++-----
 src/main/java/model/FirefighterBoard.java         | 5 +++--
 4 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java
index e88b0e9..a115fc8 100644
--- a/src/main/java/app/SimulatorApplication.java
+++ b/src/main/java/app/SimulatorApplication.java
@@ -19,6 +19,7 @@ public class SimulatorApplication extends javafx.application.Application {
   private static final int BOX_HEIGHT = 50;
   public static final int INITIAL_FIRE_COUNT = 3;
   public static final int INITIAL_FIREFIGHTER_COUNT = 6;
+  public static final int INITIAL_CLOUD_COUNT = 3;
 
   private Stage primaryStage;
   private Parent view;
@@ -44,7 +45,7 @@ public class SimulatorApplication extends javafx.application.Application {
     view = loader.load();
     Controller controller = loader.getController();
     controller.initialize(BOX_WIDTH, BOX_HEIGHT, COLUMN_COUNT, ROW_COUNT,
-            INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT);
+            INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT,INITIAL_CLOUD_COUNT);
   }
 
   private void showScene() {
diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java
index 25585b4..3dfc3b3 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -124,9 +124,9 @@ public class Controller {
   }
 
   public void initialize(int squareWidth, int squareHeight, int columnCount,
-                                int rowCount, int initialFireCount, int initialFirefighterCount) {
+                                int rowCount, int initialFireCount, int initialFirefighterCount,int initialCloud) {
     grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
-    this.setModel(new FirefighterBoard(columnCount, rowCount, initialFireCount, initialFirefighterCount));
+    this.setModel(new FirefighterBoard(columnCount, rowCount, initialFireCount, initialFirefighterCount,initialCloud));
     repaintGrid();
   }
 
diff --git a/src/main/java/model/BoardFireFighterBehavior.java b/src/main/java/model/BoardFireFighterBehavior.java
index 13a5570..7f610f5 100644
--- a/src/main/java/model/BoardFireFighterBehavior.java
+++ b/src/main/java/model/BoardFireFighterBehavior.java
@@ -12,20 +12,19 @@ public class BoardFireFighterBehavior implements BoardBehavior{
     private Set<Position> firePositions;
     private final ElementFactory<FireFighter> firefighterFactory;
     private final ElementFactory<Fire> fireFactory;
+    private final ElementFactory<Cloud> cloudFactory;
     private List<Position> cloudPositions;
     private int step;
 
-    public BoardFireFighterBehavior(Map<Position, List<Position>> neighbors, ElementFactory<Fire> fireFactory ,ElementFactory<FireFighter> firefighterFactory) {
+    public BoardFireFighterBehavior(Map<Position, List<Position>> neighbors, ElementFactory<Fire> fireFactory ,ElementFactory<FireFighter> firefighterFactory,ElementFactory<Cloud> cloudFactory) {
         this.step=0;
         this.neighbors = neighbors;
         this.firefighterFactory = firefighterFactory;
         this.fireFactory = fireFactory;
+        this.cloudFactory=cloudFactory;
     }
 
-    public void initializeElements(ElementFactory<Fire> fireFactory,
-                                   ElementFactory<FireFighter> firefighterFactory,
-                                   ElementFactory<Cloud> cloudFactory,
-                                   int rowCount, int columnCount) {
+    public void initializeElements(int rowCount, int columnCount) {
         // Feux
         firePositions = new HashSet<>();
         List<Fire> fires = fireFactory.createElements(rowCount, columnCount);
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index 15587c9..9f5486a 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -11,11 +11,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
 
   private final Random randomGenerator = new Random();
 
-  public FirefighterBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount) {
+  public FirefighterBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount,int initialCloud) {
     Map<Position, List<Position>> neighbors = initializeNeighbors(rowCount, columnCount);
 
     this.properties = new BoardFirefighterProperties(rowCount, columnCount);
-    this.behavior = new BoardFireFighterBehavior(neighbors,new FireFactory(randomGenerator,initialFireCount),new FirefighterFactory(randomGenerator,initialFirefighterCount));
+    this.behavior = new BoardFireFighterBehavior(neighbors,new FireFactory(randomGenerator,initialFireCount),new FirefighterFactory(randomGenerator,initialFirefighterCount),
+            new CloudFactory(randomGenerator,initialCloud));
 
     behavior.initializeElements( properties.rowCount(), properties.columnCount());
   }
-- 
GitLab