Select Git revision
FirefighterBoard.java
Forked from
COUETOUX Basile / FirefighterStarter
Source project has a limited visibility.
-
BELHACHEMI Mehdi authoredBELHACHEMI Mehdi authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Fires.java 1.51 KiB
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());
}
}