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