Skip to content
Snippets Groups Projects
FireFighter.java 1.15 KiB
Newer Older
  • Learn to ignore specific revisions
  • package model;
    
    import util.Position;
    
    import java.util.HashMap;
    
    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(FirefighterBoard firefighterBoard){
            List<Position> modifiedPositions = new ArrayList<>();
    
            Position currentPosition = this.getPosition();
            Position newPosition = targetStrategy.neighborClosestToFire(currentPosition, firefighterBoard.getFires().keySet(), firefighterBoard.getNeighbors());
    
    BELHACHEMI Mehdi's avatar
    BELHACHEMI Mehdi committed
    
    
            this.setPosition(newPosition);
            modifiedPositions.add(currentPosition);
            modifiedPositions.add(newPosition);
    
    BELHACHEMI Mehdi's avatar
    BELHACHEMI Mehdi committed
    
    
            firefighterBoard.extinguish(newPosition);
    
            for (Position neighbor : firefighterBoard.getNeighbors().get(newPosition)) {
                firefighterBoard.extinguish(neighbor);
                modifiedPositions.add(neighbor);
            }
    
            return modifiedPositions;
        }