diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java index ed586dc271d54c3c9a83e659492a3eafe316ad63..e7c14c967db39f34f8355a4f2dfb8182b8d24ed8 100644 --- a/src/main/java/app/SimulatorApplication.java +++ b/src/main/java/app/SimulatorApplication.java @@ -19,6 +19,8 @@ public class SimulatorApplication extends javafx.application.Application { private static final int BOX_HEIGHT = 50; public static final int INITIAL_FIRE_COUNT = 15; public static final int INITIAL_FIREFIGHTER_COUNT = 10; + public static final int INITIAL_CLOUD_COUNT = 1; + private Stage primaryStage; private Parent view; @@ -44,7 +46,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 2a60897c6eb8ba847cb8589840c16a0f175ce0a3..d31f549065a0f4187e222364a6025766ee8c27d1 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 initialCloudCount) { grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight); - this.setModel(new FirefighterBoard(columnCount, rowCount, initialFireCount, initialFirefighterCount)); + this.setModel(new FirefighterBoard(columnCount, rowCount, initialFireCount, initialFirefighterCount,initialCloudCount)); repaintGrid(); } diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index 43f0d1821927a38e3f481a5d9b1b9018d2e2ca73..224f0ba0ccb6858f742b74749383856de42cd3b9 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/FirefighterBoard.java @@ -11,24 +11,26 @@ public class FirefighterBoard implements Board<List<ModelElement>> { private final int rowCount; private final int initialFireCount; private final int initialFirefighterCount; + private final int initialCloudCount; private final TargetStrategy targetStrategy = new TargetStrategy(); private List<FireFighter> firefighters; private Map<Position, Fire> fires = new HashMap<>(); + private List<Cloud> clouds; private final Map<Position, List<Position>> neighbors = new HashMap<>(); private final Position[][] positions; private int step = 0; 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 initialCloudCount) { this.columnCount = columnCount; this.rowCount = rowCount; this.positions = new Position[rowCount][columnCount]; - // Initialize positions and neighbors initializePositionsAndNeighbors(); this.initialFireCount = initialFireCount; this.initialFirefighterCount = initialFirefighterCount; + this.initialCloudCount = initialCloudCount; initializeElements(); } @@ -57,6 +59,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> { public void initializeElements() { firefighters = new ArrayList<>(); + clouds = new ArrayList<>(); fires.clear(); for (int index = 0; index < initialFireCount; index++) { diff --git a/src/test/java/model/FirefighterBoardTest.java b/src/test/java/model/FirefighterBoardTest.java index 25cc8dbca8acea698879df68a5006a179f281ecc..5e6540f1ab46921aed249bbc44f71e5eef939a9e 100644 --- a/src/test/java/model/FirefighterBoardTest.java +++ b/src/test/java/model/FirefighterBoardTest.java @@ -10,17 +10,17 @@ import static org.assertj.core.api.Assertions.*; public class FirefighterBoardTest { @Test void testColumnCount(){ - Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3); + Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3,1); assertThat(board.columnCount()).isEqualTo(20); } @Test void testRowCount(){ - Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3); + Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3,1); assertThat(board.rowCount()).isEqualTo(10); } @Test void testStepNumber(){ - Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3); + Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3,1); for(int index = 0; index < 10; index++){ assertThat(board.stepNumber()).isEqualTo(index); board.updateToNextGeneration(); @@ -29,7 +29,7 @@ public class FirefighterBoardTest { } @Test void testGetState_afterSet(){ - Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 0, 0); + Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 0, 0,1); Position position = new Position(1,2); assertThat(board.getState(position)).isEmpty(); board.setState(List.of(ModelElement.FIRE), position);