From 60c9a3362b832d3825a1ef57f10e0076dffc50dd Mon Sep 17 00:00:00 2001
From: v23014723 <anthony.viola.1@etu.univ-amu.fr>
Date: Thu, 23 Nov 2023 11:30:51 +0100
Subject: [PATCH] MotorFirefighter ajout des Box (Firefighter en cours)

---
 src/main/java/app/SimulatorApplication.java | 14 ++++++------
 src/main/java/controller/Controller.java    |  2 +-
 src/main/java/model/Fire.java               | 25 ++++++++++++++++++---
 src/main/java/model/Firefighter.java        |  3 ++-
 src/main/java/model/FirefighterBoard.java   |  2 +-
 5 files changed, 33 insertions(+), 13 deletions(-)

diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java
index 8a95de5..f3f9e38 100644
--- a/src/main/java/app/SimulatorApplication.java
+++ b/src/main/java/app/SimulatorApplication.java
@@ -17,13 +17,13 @@ public class SimulatorApplication extends javafx.application.Application {
   private static final int COLUMN_COUNT = 20;
   private static final int SQUARE_WIDTH = 50;
   private static final int SQUARE_HEIGHT = 50;
-  public static final int INITIAL_FIRE_COUNT = 1;
-  public static final int INITIAL_FIREFIGHTER_COUNT = 4;
-  public static final int INITIAL_MOTORFIREFIGHTER_COUNT = 1;
-  public static final int INITIAL_CLOUD_COUNT = 4;
-  public static final int INITIAL_MOUNTAIN_COUNT = 5;
-  public static final int INITIAL_ROAD_COUNT = 2;
-  public static final int INITIAL_ROCKERIES_COUNT = 5;
+  public static final int INITIAL_FIRE_COUNT = 10;
+  public static final int INITIAL_FIREFIGHTER_COUNT = 1;
+  public static final int INITIAL_MOTORFIREFIGHTER_COUNT = 0;
+  public static final int INITIAL_CLOUD_COUNT = 0;
+  public static final int INITIAL_MOUNTAIN_COUNT = 0;
+  public static final int INITIAL_ROAD_COUNT = 0;
+  public static final int INITIAL_ROCKERIES_COUNT = 0;
 
   private Stage primaryStage;
   private Parent view;
diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java
index 926f018..57c0965 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -70,7 +70,7 @@ public class Controller {
     }
     grid.repaint(updatedSquares, updatedClearSquares, board);
     updateGenerationLabel(board.stepNumber());
-    //board.testScreen();
+    //board.testScreen(); //test screen debug
   }
   private void repaintGrid(){
 
diff --git a/src/main/java/model/Fire.java b/src/main/java/model/Fire.java
index 95f2493..2a63ed1 100644
--- a/src/main/java/model/Fire.java
+++ b/src/main/java/model/Fire.java
@@ -1,5 +1,6 @@
 package model;
 
+import javafx.scene.layout.HBox;
 import javafx.scene.paint.Color;
 import util.Position;
 import view.FirefighterGrid;
@@ -20,11 +21,29 @@ public class Fire implements Item{
     public List<Position> update(FirefighterBoard board) {
         ArrayList<Position> result = new ArrayList<Position>();
         List<Position> neighborslist = board.neighbors(position);
+        Box box = board.getBoxByPosition(position);;
+        Box neighborbox;
+        Item neighboritem;
+        boolean canSpread = false;
+        if (box instanceof Rockeries) {
+            canSpread = fireSpread();
+        }
         for (Position neighborposition : neighborslist) {
-            if ((board.getItemByPosition(neighborposition) == null && board.getBoxByPosition(neighborposition) == null ) || (board.getBoxByPosition(position) instanceof Rockeries && fireSpread())) {
-                board.itemList().add(new Fire(neighborposition));
-                result.add(neighborposition);
+            neighborbox = board.getBoxByPosition(neighborposition);
+            neighboritem = board.getItemByPosition(neighborposition);
+            if (neighboritem == null && (neighborbox == null || neighborbox instanceof Rockeries)){
+                if (box instanceof Rockeries ){
+                    if (canSpread){
+                        board.itemList().add(new Fire(neighborposition));
+                        result.add(neighborposition);
+                    }
+
+                } else {
+                    board.itemList().add(new Fire(neighborposition));
+                    result.add(neighborposition);
+                }
             }
+
         }
         return result;
     }
diff --git a/src/main/java/model/Firefighter.java b/src/main/java/model/Firefighter.java
index dd1459d..48ab486 100644
--- a/src/main/java/model/Firefighter.java
+++ b/src/main/java/model/Firefighter.java
@@ -33,7 +33,8 @@ public class Firefighter extends Extinguisher implements Item{
                 return result;
             }
             for (Position adjacent : board.neighbors(current)) {
-                if (seen.contains(adjacent)) continue;
+                System.out.println(board.getItemByPosition(adjacent));
+                if (seen.contains(adjacent) || board.getItemByPosition(adjacent) != null || board.getBoxByPosition(adjacent) instanceof Mountain) continue;
                 toVisit.add(adjacent);
                 seen.add(adjacent);
                 firstMove.put(adjacent, firstMove.get(current));
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index 67f2712..bc5745b 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -147,7 +147,7 @@ public class FirefighterBoard implements Board {
   public void testScreen(){
     Position position;
 
-    //System.out.println(itemList.toString());
+    System.out.println(itemList.toString());
 
     for (int row = 0; row < rowCount; row++){
       for (int column = 0; column < columnCount; column++){
-- 
GitLab