Skip to content
Snippets Groups Projects
Select Git revision
  • 16d832d73206ee9f012abab8138df34f78fadcdb
  • main default protected
  • variant
3 results

AbstractBoard.java

Blame
  • Forked from LABOUREL Arnaud / Firefighter template
    This fork has diverged from the upstream repository.
    user avatar
    Luis PARRA authored
    16d832d7
    History
    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();
        }
    }