Newer
Older
package model;
import util.Position;
import util.TargetStrategy;
import java.util.ArrayList;
import java.util.List;
public class FireFighter extends Extinguisher {
private final TargetStrategy targetStrategy = new TargetStrategy();
public FireFighter(Position position){
super(position);
element = ModelElement.FIREFIGHTER;
MEHDI
committed
public List<Position> update(Board<List<ModelElement>> firefighterBoard){
List<Position> modifiedPositions = new ArrayList<>();
Position currentPosition = this.getPosition();
MEHDI
committed
Position newPosition = targetStrategy.neighborClosestToFire(currentPosition, firefighterBoard.getFires().keySet(), firefighterBoard.getNeighbor().getNeighbors());
this.setPosition(newPosition);
modifiedPositions.add(currentPosition);
modifiedPositions.add(newPosition);
MEHDI
committed
extinguish(firefighterBoard,newPosition);
MEHDI
committed
for (Position neighbor : firefighterBoard.getNeighbor().getNeighbors().get(newPosition)) {
extinguish(firefighterBoard,neighbor);
modifiedPositions.add(neighbor);
}
return modifiedPositions;
}