Select Git revision
GridIterator.java
Forked from
YAGOUBI Rim / Game of life Template
Source project has a limited visibility.
-
LABOUREL Arnaud authoredLABOUREL Arnaud authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Fire.java 1.51 KiB
package model;
import util.Position;
import java.util.*;
public class Fire implements Element {
private Position position;
private ModelElement modelElement = ModelElement.FIRE;
public Fire(Position position){
this.position = position;
}
public Position getPosition() {
return position;
}
@Override
public ModelElement getElement() {
return modelElement;
}
public void setPosition(Position position) {
this.position = position;
}
public List<Position> update(FirefighterBoard firefighterBoard) {
List<Position> modifiedPositions = new ArrayList<>();
Map<Position, List<Position>> neighbors = firefighterBoard.getNeighbors();
// Étendre le feu seulement à chaque étape paire
if (firefighterBoard.stepNumber() % 2 == 0) {
List<Position> neighborPositions = neighbors.get(this.getPosition());
for (Position position : neighborPositions) {
if (!(firefighterBoard.getState(position).contains(modelElement))) {
// Ajouter un nouveau feu directement dans la liste des éléments
firefighterBoard.getElements().add(new Fire(position));
}
// Marquer la position comme modifiée
modifiedPositions.add(position);
}
}
return modifiedPositions;
}
public boolean contains(List<Position> positions) {
return positions.contains(this.getPosition());
}
}