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