Skip to content
Snippets Groups Projects
Select Git revision
  • 0d5f9b4cffa67962953e6041e67ff4962eaa211d
  • main default protected
  • master
3 results

BlankImage.java

Blame
  • Forked from LABOUREL Arnaud / formula Template
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    AbstractElements.java 1.39 KiB
    package model;
    
    import util.Position;
    
    import java.util.*;
    
    public abstract class AbstractElements implements Elements {
        final Random randomGenerator = new Random();
        int rowCount = 0;
        int columnCount = 0;
    
        ModelElement modelElement;
    
        List<Position> elementsPositions;
    
    
        public abstract void nextMove();
        public abstract void initializeElements(int count, int rowCount, int columnCount);
    
        protected Position randomPosition(int rowCount, int columnCount) {
            return new Position(randomGenerator.nextInt(rowCount), randomGenerator.nextInt(columnCount));
        }
    
         protected List<Position> neighbors(Position position) {
            List<Position> list = new ArrayList<>();
            if (position.row() > 0) list.add(new Position(position.row() - 1, position.column()));
            if (position.column() > 0) list.add(new Position(position.row(), position.column() - 1));
            if (position.row() < rowCount - 1) list.add(new Position(position.row() + 1, position.column()));
            if (position.column() < columnCount - 1) list.add(new Position(position.row(), position.column() + 1));
            return list;
        }
    
        public List<Position> getElementsPositions() {
            return elementsPositions;
        }
        public void addElement(Position position){
            elementsPositions.add(position);
        }
    
        @Override
        public ModelElement getModelElement() {
            return modelElement;
        }
    }