diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index 5f015a47764f666890afa7140ac5f4693dad81d1..27d53ed364137f9cbbca468faa811d64a1d99048 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)); - } } }