Skip to content
Snippets Groups Projects
Commit 01c34783 authored by ousseyn01's avatar ousseyn01
Browse files

Modification of Cloud because fire could delete Cloud

parent b40b3c19
No related branches found
No related tags found
No related merge requests found
......@@ -14,32 +14,27 @@ public class Cloud {
this.neighbors = neighbors;
}
// Déplacement du nuage d'une case aléatoire parmi ses voisins
public void move(Fire fire, Set<Position> mountains) {
List<Position> validNeighbors = neighbors.get(position).stream()
.filter(neighbor -> !mountains.contains(neighbor)) // Exclure les montagnes
.toList();
// Déplacement aléatoire du nuage
public void move() {
List<Position> validNeighbors = neighbors.get(position);
if (!validNeighbors.isEmpty()) {
this.position = validNeighbors.get(randomGenerator.nextInt(validNeighbors.size()));
}
// Éteindre les feux après déplacement
extinguishFires(fire);
}
// Éteint les feux sur la position du nuage et ses voisins
private void extinguishFires(Fire fire) {
// Éteindre le feu à la position actuelle
fire.extinguishFire(position);
// Éteindre les feux voisins
// Éteindre les feux dans les cases adjacentes
public void extinguishSurroundingFires(Fire fire) {
for (Position neighbor : neighbors.get(position)) {
fire.extinguishFire(neighbor);
fire.extinguishFire(neighbor); // Éteint les feux adjacents
}
}
public Position getPosition() {
return position;
}
// Les nuages ne peuvent pas être supprimés par le feu
public void protectFromFire(Fire fire) {
fire.getFirePositions().remove(position);
}
}
......@@ -127,7 +127,9 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
for (Cloud cloud : clouds) {
//cloud.moveAndExtinguishFire(fire);
//cloud.extinguishFireCloud(fire);
cloud.move(fire, getMountainPositions());
cloud.move();
cloud.protectFromFire(fire);
cloud.extinguishSurroundingFires(fire);
}
step++;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment