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

Modification of Cloud because it not works correctly

We change methods and implements other methods
parent cb4d18d9
Branches
No related tags found
No related merge requests found
......@@ -3,7 +3,6 @@ package model;
import util.Position;
import java.util.*;
import java.util.Map;
public class Cloud {
private Position position;
......@@ -15,32 +14,32 @@ public class Cloud {
this.neighbors = neighbors;
}
public void moveAndExtinguishFire(Fire fire) {
Position newPosition = moveToNewPosition();
this.position = newPosition;
// 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();
extinguishNeighboringFires(fire);
}
if (!validNeighbors.isEmpty()) {
this.position = validNeighbors.get(randomGenerator.nextInt(validNeighbors.size()));
}
private Position moveToNewPosition() {
List<Position> neighborsList = neighbors.get(position);
return neighborsList.get((int) (Math.random() * neighborsList.size()));
// Éteindre les feux après déplacement
extinguishFires(fire);
}
private void extinguishNeighboringFires(Fire fire) {
List<Position> neighboringPositions = neighbors.get(position);
for (Position neighbor : neighboringPositions) {
if (fire.getFirePositions().contains(neighbor)) {
fire.extinguishFire(neighbor);
}
// É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
for (Position neighbor : neighbors.get(position)) {
fire.extinguishFire(neighbor);
}
}
public Position getPosition() {
return position;
}
public void extinguishFireCloud(Fire fire) {
fire.getFirePositions().remove(position);
}
}
......@@ -125,8 +125,9 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
}
// Déplacer les nuages et éteindre les feux
for (Cloud cloud : clouds) {
cloud.moveAndExtinguishFire(fire);
cloud.extinguishFireCloud(fire);
//cloud.moveAndExtinguishFire(fire);
//cloud.extinguishFireCloud(fire);
cloud.move(fire, getMountainPositions());
}
step++;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment