diff --git a/src/main/java/model/BoardFireFighterBehavior.java b/src/main/java/model/BoardFireFighterBehavior.java index 933056cbe7172087f7e9719c88aff95dc499766a..7e1275ba49567228b6b6a1e39508308fe0b9d907 100644 --- a/src/main/java/model/BoardFireFighterBehavior.java +++ b/src/main/java/model/BoardFireFighterBehavior.java @@ -10,21 +10,30 @@ public class BoardFireFighterBehavior implements BoardBehavior{ private final Map<Position, List<Position>> neighbors; private List<Position> firefighterPositions; private Set<Position> firePositions; + private final ElementFactory<FireFighter> firefighterFactory; + private final ElementFactory<Fire> fireFactory; private int step; - public BoardFireFighterBehavior(Map<Position, List<Position>> neighbors) { + public BoardFireFighterBehavior(Map<Position, List<Position>> neighbors, ElementFactory<Fire> fireFactory ,ElementFactory<FireFighter> firefighterFactory) { + this.step=0; this.neighbors = neighbors; - this.step = 0; + this.firefighterFactory = firefighterFactory; + this.fireFactory = fireFactory; } - public void initializeElements(int initialFireCount, int initialFirefighterCount, int rowCount, int columnCount, Random randomGenerator) { - firefighterPositions = new ArrayList<>(); + public void initializeElements(int rowCount, int columnCount) { + // Utilisation de la factory pour créer les feux firePositions = new HashSet<>(); - for (int i = 0; i < initialFireCount; i++) { - firePositions.add(randomPosition(rowCount, columnCount, randomGenerator)); + List<Fire> fires = fireFactory.createElements(rowCount, columnCount); + for (Fire fire : fires) { + firePositions.add(fire.getPosition()); } - for (int i = 0; i < initialFirefighterCount; i++) { - firefighterPositions.add(randomPosition(rowCount, columnCount, randomGenerator)); + + // Utilisation de la factory pour créer les pompiers + firefighterPositions = new ArrayList<>(); + List<FireFighter> firefighters = firefighterFactory.createElements(rowCount, columnCount); + for (FireFighter firefighter : firefighters) { + firefighterPositions.add(firefighter.getPosition()); } } @@ -70,9 +79,6 @@ public class BoardFireFighterBehavior implements BoardBehavior{ firePositions.remove(position); } - public void reset(int step) { - this.step = step; - } public Set<Position> getFirePositions() { return firePositions; @@ -102,6 +108,7 @@ public class BoardFireFighterBehavior implements BoardBehavior{ @Override public void reset() { - + this.step=0; } + }