Select Git revision
AbstractBoard.java
Forked from
LABOUREL Arnaud / Firefighter template
This fork has diverged from the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
AbstractBoard.java 1.25 KiB
package model;
import model.fireFighterElements.*;
import util.Position;
import java.util.ArrayList;
import java.util.List;
public abstract class AbstractBoard<F> implements Board<List<FireFighterModelElement>>{
public int columnCount;
public int rowCount;
public Elements[] elements = new Elements[]{};
public int step = 0;
public AbstractBoard(int columnCount, int rowCount){
this.columnCount = columnCount;
this.rowCount = rowCount;
}
public abstract void initializeElements();
@Override
public List<FireFighterModelElement> getState(Position position) {
List<FireFighterModelElement> result = new ArrayList<>();
for(Elements element : elements)
if (element.getElementsPositions().contains(position))
result.add(element.getFireFighterModelElement());
return result;
}
@Override
public int rowCount() {
return rowCount;
}
@Override
public int columnCount() {
return columnCount;
}
public abstract List<Position> updateToNextGeneration();
@Override
public int stepNumber() {
return step;
}
@Override
public void reset() {
step = 0;
initializeElements();
}
}