package model; import util.Position; import java.util.*; public class Fire { private static Set<Position> firePositions; private static Map<Position, List<Position>> neighbors; public Fire(Set<Position> firePositions, Map<Position, List<Position>> neighbors) { this.firePositions = firePositions; this.neighbors = neighbors; } public Position getPosition(){ return firePositions.iterator().next(); } public void setPosition(Position p){ this.firePositions.add(p); } public static Set<Position> getFirePositions() { return firePositions; } public static List<Position> spreadFire(Set<Position> mountains) { List<Position> newFires = new ArrayList<>(); for (Position firePosition : firePositions) { for (Position neighbor : neighbors.get(firePosition)) { if (!mountains.contains(neighbor) && !firePositions.contains(neighbor)) { newFires.add(neighbor); } } } firePositions.addAll(newFires); return newFires; } public static void extinguishFire(Position neighbor) { firePositions.remove(neighbor); } }