Skip to content
Snippets Groups Projects
Commit 16c08852 authored by ousseyn01's avatar ousseyn01
Browse files

NextGenerationUpdater is CREATED and DONE in update package

parent 82d27431
No related branches found
No related tags found
No related merge requests found
package model.update;
import model.Cloud;
import model.Fire;
import model.Firefighter;
import model.Mountain;
import util.Position;
import java.util.List;
import java.util.Map;
public class NextGenerationUpdater {
private final Fire fire;
private final List<Cloud> clouds;
private final List<Firefighter> firefighters;
private final List<Mountain> mountains;
private final Map<Position, List<Position>> neighbors;
private int step;
public NextGenerationUpdater(Fire fire, List<Cloud> clouds, List<Firefighter> firefighters, List<Mountain> mountains, Map<Position, List<Position>> neighbors) {
this.fire = fire;
this.clouds = clouds;
this.firefighters = firefighters;
this.mountains = mountains;
this.neighbors = neighbors;
this.step = 0;
}
public List<Position> updateToNextGeneration() {
FirefighterUpdater firefighterUpdater = new FirefighterUpdater(firefighters, neighbors, fire);
List<Position> modifiedPositions = firefighterUpdater.updateFirefighters(Mountain.getMountainPositions(mountains));
if (step % 2 == 0) {
modifiedPositions.addAll(fire.spreadFire(Mountain.getMountainPositions(mountains)));
}
for (Cloud cloud : clouds) {
cloud.move();
cloud.protectFromFire(fire);
cloud.extinguishSurroundingFires(fire);
}
step++;
return modifiedPositions;
}
public void resetStep() {
this.step = 0;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment