package UI; public class ConfigurationManager { public int[][] getInitialStates() public int getRows() public int getColumns() public String getDescription() public String getTitle() public String getSimulationName() public String getAuthor() public String[] getColors() public String getShape() public String getEdgeType() public int[][] getNeighbors() public static Rule findSimulationType(String name) public ArrayList getSliders(Rule myRule) public GridUI createGridUI(Rule myRule) public void saveConfiguration(ResourceBundle myResources, Stage myStage, GridUI myGridUI) } package UI; public class UIManager extends Application { public void start(Stage stage) public Void call() } package UI; public class GraphManager { public void updateGraph(int[] values) public void toggleChart() public void closeChart() } package UI; public abstract class GridUI { public abstract void step(); public abstract GridPane getGridPane(); public abstract int[] getCellStateList(); public abstract String getCellStates(); public void setNextStates(Cell thisCell, int numStates) } package UI; public class SquareGridUI extends GridUI { public void step() public GridPane getGridPane() public int[] getCellStateList() public String getCellStates() } package UI; public class TriangleGridUI extends GridUI { public void step() public GridPane getGridPane() public int[] getCellStateList() public String getCellStates() } package xml; public class GeneralConfigurations { public GeneralConfigurations(int rows, int cols, String configs, String neighbors, String colors, String description) public int getRows() public int getCols() public String getConfigs() public String getNeighbors() public String getColors() public String getDescription() } package xml; public class Simulation { public static final List DATA_FIELDS = List.of( public Simulation(String simulationName, String title, String author, String shape, String edgeType, int gridLines, GeneralConfigurations configs) public Simulation(Map dataValues) public String getSimulationName() throws XMLException public String getTitle() public String getAuthor() public String getShape() public String getEdgeType() public boolean getGridLines() public int getCols() throws XMLException public int getRows() throws XMLException public int[][] getConfigs() throws XMLException public int[][] getNeighborCoordinates() public String getColors() public String getDescription() public String toString() } package xml; public class XMLException extends RuntimeException { public XMLException(String message, Object... values) public XMLException(Throwable cause, String message, Object... values) public XMLException(Throwable cause) } package xml; public class XMLParser { public XMLParser(String type) public Simulation getSimulation(File dataFile) } package model; public class CellManager { public CellManager(int rows, int cols, int[][] initConditions, Rule activeRule, int gridType, int[][] neighbors, String edgeType) public Grid getGrid() public void updateCells() public static void throwOutDiagonals(Cell cell, List neighborsArray) public void nextGeneration() } package model; public class SquareGrid extends Grid { public List getNeighbors(Cell cell, int[][] neighborMask) } package model; public abstract class Grid { public int getRowSize() public int getColSize() public int getEdgeType() public int[] getStateList() public String getCellStates() public abstract List getNeighbors(Cell cell, int[][] neighborMask); public Cell getNeighborCell(int row, int col) public Cell getCell(int row, int col) } package model.rule.rps; public class RPSCell extends Cell { public double getRock_level() public void setRock_level(double rock_level) public double getPaper_level() public void setPaper_level(double paper_level) public double getScissors_level() public void setScissors_level(double scissors_level) public Bacteria getBacteria() public void setBacteria(Bacteria myBacteria) public RPSCell(int row, int col, int initState) } package model.rule.rps; public class RPSRule extends Rule { public RPSRule() public void applyRule(Cell cell, List neighbors, int passNum) public Class getCellType() public int getPasses() } package model.rule.rps; public class Bacteria { public int getType() public void incAge() public int getAge() } package model.rule.foragingants; public class Ant { public boolean getHasFoodItem() public void setHasFoodItem(boolean hasFoodItem) public Ant() public boolean hasMoved() public void setHasMoved(boolean hasMoved) } package model.rule.foragingants; public class ForagingAntsCell extends Cell { public double getHomeLevel() public void setHomeLevel(double homeLevel) public double getFoodLevel() public void setFoodLevel(double foodLevel) public boolean isObstacle() public void setObstacle(boolean obstacle) public boolean isHome() public void setHome(boolean home) public boolean isFood() public void setFood(boolean food) public boolean isInitialized() public void setInitialized(boolean initialized) public List getAntList() public ForagingAntsCell(int row, int col, int initState) } package model.rule.foragingants; public class ForagingAntsRule extends Rule { public ForagingAntsRule() public void applyRule(Cell cell, List neighbors, int passNum) public Class getCellType() public int getPasses() } package model.rule.fire; public class FireRule extends Rule { public FireRule() public int getPasses() public void setProbability(double prob) public double getProbability() public Class getCellType() public void applyRule(Cell cell, List neighborsArray, int passNum) } package model.rule.predatorprey; public class Shark { public int getEnergy() public void setEnergy(int myEnergy) public int getAge() public void setAge(int age) public Cell getCell() public void setCell(Cell cell) } package model.rule.predatorprey; public class PredatorPreyRule extends Rule { public int getFishReproductionTime() public int getSharkReproductionTime() public void setFishReproductionTime(int time) public void setSharkReproductionTime(int time) public PredatorPreyRule() public int getPasses() public Class getCellType() public void applyRule(Cell cell, List neighborsArray, int passNum) } package model.rule.predatorprey; public class Fish { public int getAge() public void setAge(int age) public Cell getCell() public void setCell(Cell cell) } package model.rule.gameoflife; public class GameOfLifeRule extends Rule { public int getPasses() public GameOfLifeRule() public Class getCellType() public void applyRule(Cell cell, List neighborsArray, int passNum) } package model.rule.segregation; public class SegregationRule extends Rule { public SegregationRule() public int getPasses() public double getTolerance() public void setTolerance(double tolerance) public Class getCellType() public void applyRule(Cell cell, List neighborsArray, int passNum) } package model.rule.langtonsloop; public class LangtonsLoopRule extends Rule { public static final String langtonRules = new String( // Langton Loop rules public LangtonsLoopRule() public int getPasses() public Class getCellType() public void applyRule(Cell cell, List neighborsArray, int passNum) } package model.rule; public abstract class Rule { public int getNumStates() public abstract void applyRule(Cell myCell, List myNeighbors, int passNum); public abstract Class getCellType(); public abstract int getPasses(); } package model; public class TriangleGrid extends Grid { public List getNeighbors(Cell cell, int[][] neighborMask) } package model; public class Cell { public Cell(int row, int col, int initState) public int getRow() public int getCol() public int getCurrentState() public void setCurrentState(int currentState) public int getNextState() public void setNextState(int nextState) }