From 7652133cbe143b02cce923d69a9136c0857f221c Mon Sep 17 00:00:00 2001 From: ousseyn01 <ousseyn.ndiaye9@gmail.com> Date: Sun, 24 Nov 2024 21:51:15 +0100 Subject: [PATCH] FirefighterBoard is Modified too --- src/main/java/model/FirefighterBoard.java | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index 5f015a4..27d53ed 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/FirefighterBoard.java @@ -65,14 +65,16 @@ public class FirefighterBoard implements Board<List<ModelElement>> { @Override public List<ModelElement> getState(Position position) { List<ModelElement> result = new ArrayList<>(); - for (Firefighter firefighter : firefighters) - if (firefighter.getPosition().equals(position)) - result.add(ModelElement.FIREFIGHTER); for (Cloud cloud : clouds) { if (cloud.getPosition().equals(position)) { result.add(ModelElement.CLOUD); } } + + for (Firefighter firefighter : firefighters) + if (firefighter.getPosition().equals(position)) + result.add(ModelElement.FIREFIGHTER); + if (fire.getFirePositions().contains(position)) result.add(ModelElement.FIRE); return result; @@ -95,8 +97,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> { } // Déplacer les nuages et éteindre les feux for (Cloud cloud : clouds) { - cloud.moveRandomly(); - cloud.extinguishFire(fire); + //cloud.moveRandomly(); + //cloud.extinguishFire(fire); + cloud.moveAndExtinguishFire(fire); + cloud.extinguishFireCloud(fire); + //modifiedPositions.addAll(fire.spreadFire()); + } step++; @@ -127,7 +133,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> { .toList(); for (Position firePosition : adjacentFires) { firefighter.extinguish(firePosition, fire.getFirePositions()); - modifiedPosition.add(firePosition); // Ajouter la position comme modifiée + modifiedPosition.add(firePosition); } } @@ -144,12 +150,13 @@ public class FirefighterBoard implements Board<List<ModelElement>> { public void setState(List<ModelElement> state, Position position) { fire.getFirePositions().remove(position); firefighters.removeIf(f -> f.getPosition().equals(position)); + clouds.removeIf(c -> c.getPosition().equals(position)); + for (ModelElement element : state) { switch (element) { case FIRE -> fire.getFirePositions().add(position); case FIREFIGHTER -> firefighters.add(new Firefighter(position)); case CLOUD -> clouds.add(new Cloud(position, neighbors)); - } } } -- GitLab