Skip to content
Snippets Groups Projects
Commit 24dffc76 authored by BELHACHEMI Mehdi's avatar BELHACHEMI Mehdi
Browse files

mmehdi : finished FirefighterBoard.java

parent 588fdea1
No related branches found
No related tags found
No related merge requests found
Pipeline #38189 failed
......@@ -115,14 +115,18 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
private List<Position> updateFirefighters() {
List<Position> modifiedPosition = new ArrayList<>();
List<Position> firefighterNewPositions = new ArrayList<>();
for (FireFighter firefighterPosition : firefighter) {
List<FireFighter> firefighters = new ArrayList<>();
List<Position> firePositions = new ArrayList<>();
for(Fire fire: fire){
firePositions.add(fire.getFirePosition());
}
for (FireFighter firefighter: firefighter) {
Position newFirefighterPosition =
targetStrategy.neighborClosestToFire(firefighterPosition,
targetStrategy.neighborClosestToFire(firefighter.getFireFighterPosition(),
firePositions, neighbors);
firefighterNewPositions.add(newFirefighterPosition);
firefighters.add(firefighter);
extinguish(newFirefighterPosition);
modifiedPosition.add(firefighterPosition.getFireFighterPosition());
modifiedPosition.add(firefighter.getFireFighterPosition());
modifiedPosition.add(newFirefighterPosition);
List<Position> neighborFirePositions = neighbors.get(newFirefighterPosition).stream()
.filter(firePositions::contains).toList();
......@@ -130,7 +134,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
extinguish(firePosition);
modifiedPosition.addAll(neighborFirePositions);
}
firefighterPositions = firefighterNewPositions;
firefighter = firefighters;
return modifiedPosition;
}
......
......@@ -12,7 +12,7 @@ public class TargetStrategy {
* @param targets positions that are targeted.
* @return the position next to the current position that is on the path to the closest target.
*/
Position neighborClosestToFire(Position position, Collection<Position> targets,
public Position neighborClosestToFire(Position position, Collection<Position> targets,
Map<Position,List<Position>>neighbors) {
Set<Position> seen = new HashSet<Position>();
HashMap<Position, Position> firstMove = new HashMap<Position, Position>();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment