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>> { ...@@ -115,14 +115,18 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
private List<Position> updateFirefighters() { private List<Position> updateFirefighters() {
List<Position> modifiedPosition = new ArrayList<>(); List<Position> modifiedPosition = new ArrayList<>();
List<Position> firefighterNewPositions = new ArrayList<>(); List<FireFighter> firefighters = new ArrayList<>();
for (FireFighter firefighterPosition : firefighter) { List<Position> firePositions = new ArrayList<>();
for(Fire fire: fire){
firePositions.add(fire.getFirePosition());
}
for (FireFighter firefighter: firefighter) {
Position newFirefighterPosition = Position newFirefighterPosition =
targetStrategy.neighborClosestToFire(firefighterPosition, targetStrategy.neighborClosestToFire(firefighter.getFireFighterPosition(),
firePositions, neighbors); firePositions, neighbors);
firefighterNewPositions.add(newFirefighterPosition); firefighters.add(firefighter);
extinguish(newFirefighterPosition); extinguish(newFirefighterPosition);
modifiedPosition.add(firefighterPosition.getFireFighterPosition()); modifiedPosition.add(firefighter.getFireFighterPosition());
modifiedPosition.add(newFirefighterPosition); modifiedPosition.add(newFirefighterPosition);
List<Position> neighborFirePositions = neighbors.get(newFirefighterPosition).stream() List<Position> neighborFirePositions = neighbors.get(newFirefighterPosition).stream()
.filter(firePositions::contains).toList(); .filter(firePositions::contains).toList();
...@@ -130,7 +134,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> { ...@@ -130,7 +134,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
extinguish(firePosition); extinguish(firePosition);
modifiedPosition.addAll(neighborFirePositions); modifiedPosition.addAll(neighborFirePositions);
} }
firefighterPositions = firefighterNewPositions; firefighter = firefighters;
return modifiedPosition; return modifiedPosition;
} }
......
...@@ -12,7 +12,7 @@ public class TargetStrategy { ...@@ -12,7 +12,7 @@ public class TargetStrategy {
* @param targets positions that are targeted. * @param targets positions that are targeted.
* @return the position next to the current position that is on the path to the closest target. * @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) { Map<Position,List<Position>>neighbors) {
Set<Position> seen = new HashSet<Position>(); Set<Position> seen = new HashSet<Position>();
HashMap<Position, Position> firstMove = new HashMap<Position, 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