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

FirefighterBoard.java is CREATED and DONE in update package

parent ce308b6e
No related branches found
No related tags found
No related merge requests found
package model.update;
import model.Fire;
import model.Firefighter;
import util.Position;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class FirefighterUpdater {
private final List<Firefighter> firefighters;
private final Map<Position, List<Position>> neighbors;
private final Fire fire;
public FirefighterUpdater(List<Firefighter> firefighters, Map<Position, List<Position>> neighbors, Fire fire) {
this.firefighters = firefighters;
this.neighbors = neighbors;
this.fire = fire;
}
public List<Position> updateFirefighters(Set<Position> mountainPositions) {
List<Position> modifiedPositions = new ArrayList<>();
for (Firefighter firefighter : firefighters) {
modifiedPositions.add(firefighter.getPosition());
Position newPosition = firefighter.moveToBestPosition(fire.getFirePositions(), neighbors, mountainPositions);
firefighter.setPosition(newPosition);
modifiedPositions.add(newPosition);
firefighter.extinguish(newPosition, fire.getFirePositions());
// Éteindre les feux dans les positions voisines
List<Position> adjacentFires = neighbors.get(newPosition).stream()
.filter(fire.getFirePositions()::contains)
.toList();
for (Position firePosition : adjacentFires) {
firefighter.extinguish(firePosition, fire.getFirePositions());
modifiedPositions.add(firePosition);
}
}
return modifiedPositions;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment