Skip to content
Snippets Groups Projects
Commit 7652133c authored by ousseyn01's avatar ousseyn01
Browse files

FirefighterBoard is Modified too

parent b15b4dc3
Branches
No related tags found
No related merge requests found
...@@ -65,14 +65,16 @@ public class FirefighterBoard implements Board<List<ModelElement>> { ...@@ -65,14 +65,16 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
@Override @Override
public List<ModelElement> getState(Position position) { public List<ModelElement> getState(Position position) {
List<ModelElement> result = new ArrayList<>(); List<ModelElement> result = new ArrayList<>();
for (Firefighter firefighter : firefighters)
if (firefighter.getPosition().equals(position))
result.add(ModelElement.FIREFIGHTER);
for (Cloud cloud : clouds) { for (Cloud cloud : clouds) {
if (cloud.getPosition().equals(position)) { if (cloud.getPosition().equals(position)) {
result.add(ModelElement.CLOUD); result.add(ModelElement.CLOUD);
} }
} }
for (Firefighter firefighter : firefighters)
if (firefighter.getPosition().equals(position))
result.add(ModelElement.FIREFIGHTER);
if (fire.getFirePositions().contains(position)) if (fire.getFirePositions().contains(position))
result.add(ModelElement.FIRE); result.add(ModelElement.FIRE);
return result; return result;
...@@ -95,8 +97,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> { ...@@ -95,8 +97,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
} }
// Déplacer les nuages et éteindre les feux // Déplacer les nuages et éteindre les feux
for (Cloud cloud : clouds) { for (Cloud cloud : clouds) {
cloud.moveRandomly(); //cloud.moveRandomly();
cloud.extinguishFire(fire); //cloud.extinguishFire(fire);
cloud.moveAndExtinguishFire(fire);
cloud.extinguishFireCloud(fire);
//modifiedPositions.addAll(fire.spreadFire());
} }
step++; step++;
...@@ -127,7 +133,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> { ...@@ -127,7 +133,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
.toList(); .toList();
for (Position firePosition : adjacentFires) { for (Position firePosition : adjacentFires) {
firefighter.extinguish(firePosition, fire.getFirePositions()); 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>> { ...@@ -144,12 +150,13 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
public void setState(List<ModelElement> state, Position position) { public void setState(List<ModelElement> state, Position position) {
fire.getFirePositions().remove(position); fire.getFirePositions().remove(position);
firefighters.removeIf(f -> f.getPosition().equals(position)); firefighters.removeIf(f -> f.getPosition().equals(position));
clouds.removeIf(c -> c.getPosition().equals(position));
for (ModelElement element : state) { for (ModelElement element : state) {
switch (element) { switch (element) {
case FIRE -> fire.getFirePositions().add(position); case FIRE -> fire.getFirePositions().add(position);
case FIREFIGHTER -> firefighters.add(new Firefighter(position)); case FIREFIGHTER -> firefighters.add(new Firefighter(position));
case CLOUD -> clouds.add(new Cloud(position, neighbors)); case CLOUD -> clouds.add(new Cloud(position, neighbors));
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment