Newer
Older
import model.Board.Board;
import model.Elements.ModelElement;
import model.Elements.Obstacle.Mountain;
import model.Elements.Obstacle.Obstacle;
import util.Position;
import java.util.ArrayList;
import java.util.List;
public class FireFighter extends Extinguisher {
public FireFighter(Position position) {
super(position);
element = ModelElement.FIREFIGHTER;
public List<Position> update(Board<List<ModelElement>> firefighterBoard) {
this.neighbour = new Neighbour(firefighterBoard);
List<Position> modifiedPositions = new ArrayList<>();
Position currentPosition = this.getPosition();
Position newPosition = targetStrategy.neighborClosestToFire(currentPosition, firefighterBoard.getFires().keySet(), this.neighbour.getNeighbors());
modifiedPositions.add(currentPosition);
modifiedPositions.add(newPosition);
MEHDI
committed
extinguish(firefighterBoard,newPosition);
for (Position neighbor : this.neighbour.getNeighbors().get(newPosition)) {
MEHDI
committed
extinguish(firefighterBoard,neighbor);
modifiedPositions.add(neighbor);
}
for(Obstacle obstacle : firefighterBoard.getObstacles().values()){
modifiedPositions.remove(obstacle.getPosition());
}
}
return modifiedPositions;
}