package model; import util.Position; import java.util.*; public class Fires extends BoardMethods implements ModelElement { private Set<Position> firePositions; private int step; public Fires() { } public void add(Position newPositions){ firePositions.add(newPositions); } public Set<Position> getFirePositions() { return firePositions; } public List<Position> updateFires(Montains montains, Roads roads) { List<Position> result = new ArrayList<>(); if (step % 2 == 0) { List<Position> newFirePositions = new ArrayList<>(); for (Position fire : firePositions) { List<Position> neighbors= neighbors(fire); for (Position position : neighbors){ if(!montains.getMontainsPositions().contains(position) || !roads.getRoadsPositions().contains(position)) newFirePositions.add(position); } } firePositions.addAll(newFirePositions); result.addAll(newFirePositions); } return result; } public void incrementStep(){ this.step ++; } public void initializeElements(int initialFireCount, int rowCount, int columnCount) { //this.step=step; this.columnCount = columnCount; this.rowCount = rowCount; firePositions = new HashSet<>(); for (int index = 0; index < initialFireCount; index++) firePositions.add(randomPosition()); } }