diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java index e88b0e9856086cc6f53f2782175393dca6365eb6..a115fc893d72d08b8a3a977ce3a6ec251cec827c 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 25585b45bd5a53ae1857b402339c57baa28bc2e3..3dfc3b39d846385ab86d73755aa137978520975e 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 13a557033ca2ef41efb2cff573d58f03c60271ce..7f610f52253e2fc30d985c08978d7203a2db9fb6 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 15587c9ec34fb8a58589d486416c7d7858d0472a..9f5486ab36768ffec4fc025a011584f89ca2ac00 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()); }