diff --git a/src/main/java/model/FireManager.java b/src/main/java/model/FireManager.java index 778cf81bd4a390c3f1c02f00261f102b06280cf1..b353713af942c713f2e2d5cf2f5b0c0aa2e7c0f4 100644 --- a/src/main/java/model/FireManager.java +++ b/src/main/java/model/FireManager.java @@ -39,6 +39,7 @@ public class FireManager implements FireBehavior, FireProperties{ firePositions.remove(position); } // Query if a position is on fire + @Override public boolean isOnFire(Position position) { return firePositions.contains(position); } diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index 6398ec5a134240db249c4a0bc3adb5237dc73e6d..9838955c113356a81ed6c9754cbe9e7f7e47f743 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/FirefighterBoard.java @@ -10,22 +10,32 @@ public class FirefighterBoard implements Board<List<ModelElement>> { private final int rowCount; private final int initialFireCount; private final int initialFirefighterCount; - private final TargetStrategy targetStrategy = new TargetStrategy(); + + private final FireManager fireManager; + private final FirefighterManager firefighterManager; private List<Position> firefighterPositions; private Set<Position> firePositions; - private Map<Position, List<Position>> neighbors = new HashMap(); private final Position[][] positions; private int step = 0; + private final Map<Position, List<Position>> neighbors = new HashMap<>(); private final Random randomGenerator = new Random(); public FirefighterBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount) { this.columnCount = columnCount; this.rowCount = rowCount; + this.initialFireCount = initialFireCount; + this.initialFirefighterCount = initialFirefighterCount; + + // Initialize positions this.positions = new Position[rowCount][columnCount]; - for (int column = 0; column < columnCount; column++) - for (int row = 0; row < rowCount; row++) + for (int column = 0; column < columnCount; column++) { + for (int row = 0; row < rowCount; row++) { positions[row][column] = new Position(row, column); - for (int column = 0; column < columnCount; column++) + } + } + + // Initialize neighbors + for (int column = 0; column < columnCount; column++) { for (int row = 0; row < rowCount; row++) { List<Position> list = new ArrayList<>(); if (row > 0) list.add(positions[row - 1][column]); @@ -34,8 +44,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> { if (column < columnCount - 1) list.add(positions[row][column + 1]); neighbors.put(positions[row][column], list); } - this.initialFireCount = initialFireCount; - this.initialFirefighterCount = initialFirefighterCount; + } + + // Initialize managers + this.fireManager = new FireManager(new HashSet<>()); + this.firefighterManager = new FirefighterManager(new ArrayList<>(), fireManager); + initializeElements(); } @@ -99,7 +113,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> { return step; } - private List<Position> updateFirefighters() { + /* private List<Position> updateFirefighters() { List<Position> modifiedPosition = new ArrayList<>(); List<Position> firefighterNewPositions = new ArrayList<>(); for (Position firefighterPosition : firefighterPositions) { @@ -118,7 +132,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> { } firefighterPositions = firefighterNewPositions; return modifiedPosition; - } + }*/ @Override public void reset() {