Newer
Older
package model;
import util.Position;
public class Fire implements Element {
private ModelElement modelElement = ModelElement.FIRE;
public Fire(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());