From 7c59a88aae0b866b2e361ecabf2775b1bb3e3746 Mon Sep 17 00:00:00 2001 From: Celia AREZKI <celia.arezki.1@etu.univ-amu.fr> Date: Sun, 17 Nov 2024 20:46:08 +0100 Subject: [PATCH] FirefighterBoard : add the methode initializePositions() --- src/main/java/model/FirefighterBoard.java | 39 +++++++++++++---------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index 9838955..24fb0ac 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/FirefighterBoard.java @@ -25,34 +25,41 @@ public class FirefighterBoard implements Board<List<ModelElement>> { this.rowCount = rowCount; this.initialFireCount = initialFireCount; this.initialFirefighterCount = initialFirefighterCount; - - // Initialize positions this.positions = new Position[rowCount][columnCount]; + + + initializeNeighbors(); + + // Initialize managers + this.fireManager = new FireManager(new HashSet<>()); + this.firefighterManager = new FirefighterManager(new ArrayList<>(), fireManager); + + initializeElements(); + } + private void initializeNeighbors() { for (int column = 0; column < columnCount; column++) { for (int row = 0; row < rowCount; row++) { - positions[row][column] = new Position(row, column); + List<Position> list = new ArrayList<>(); + if (row > 0) list.add(positions[row - 1][column]); // Voisin du haut + if (column > 0) list.add(positions[row][column - 1]); // Voisin de gauche + if (row < rowCount - 1) list.add(positions[row + 1][column]); // Voisin du bas + if (column < columnCount - 1) list.add(positions[row][column + 1]); // Voisin de droite + neighbors.put(positions[row][column], list); } } + } + private void initializePositions() + { + // Initialize positions - // 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]); - if (column > 0) list.add(positions[row][column - 1]); - if (row < rowCount - 1) list.add(positions[row + 1][column]); - if (column < columnCount - 1) list.add(positions[row][column + 1]); - neighbors.put(positions[row][column], list); + positions[row][column] = new Position(row, column); } } - - // Initialize managers - this.fireManager = new FireManager(new HashSet<>()); - this.firefighterManager = new FirefighterManager(new ArrayList<>(), fireManager); - - initializeElements(); } + public void initializeElements() { firefighterPositions = new ArrayList<>(); firePositions = new HashSet<>(); -- GitLab