package cellsociety.ruleStructure; public class SchellingSegregationRules extends CellSocietyRules{ public SchellingSegregationRules(String type, Map parameters) super(type, parameters);} } package cellsociety.ruleStructure; public class GameOfLifeRules extends CellSocietyRules { public GameOfLifeRules(String type, Map parameters) super(type, parameters);} } package cellsociety.ruleStructure; public class FireRules extends CellSocietyRules { public FireRules(String type, Map parameters) super(type, parameters);} } package cellsociety.ruleStructure; protected ResourceBundle initializeBundle(String bundleBase, String packageName) { return ResourceBundle.getBundle(String.format("%s%s", bundleBase,packageName)); abstract public class CellSocietyRules { public CellSocietyRules(String myType, Map parameters) public Integer generateNextState(int quantityOfLivingCells, int currentState) public ErrorFactory getMyErrorFactory() return myErrorFactory;} } package cellsociety.ruleStructure; public class WaTorRules extends CellSocietyRules { public WaTorRules(String type, Map parameters) } package cellsociety.ruleStructure; public class PercolationRules extends CellSocietyRules { public PercolationRules(String type, Map parameters) super(type, parameters);} } package cellsociety.controller; public class GameFactory { public String setUpModel(String file) public Map getParametersMap() public ErrorFactory getMyErrorFactory() } package cellsociety.controller; public class Grid { public Grid(int rowCount, int colCount ) public void getCellStates(String cellStates) public void initializeCells(CSVReader csvReader) public int rowLength() public int colLength() public Cells getCell(int i, int j) public void setCell(int i, int j, Cells myCell) public ErrorFactory getMyErrorFactory() } package cellsociety.controller; public class GridFactory { public GridFactory() public Grid setUpGrid(String file) public ErrorFactory getMyErrorFactory() return myErrorFactory;} } package cellsociety.controller; public class CellSocietyController { public CellSocietyController() public void loadFileType(String file) public Grid getMyGrid()return myGrid;} public Map getMyParametersMap() public CellSocietyModel getMyModel() public String getMyGameType() public void step() public int[] getCellStateCounts() public double getStepCount() public String getMyError() public boolean getErrorExists() } package cellsociety.rule; public class RuleLessThan extends Rule { public RuleLessThan(int comparator, Integer conditionResult) } package cellsociety.rule; public class RuleEqual extends Rule { public RuleEqual(int comparator, Integer conditionResult) } package cellsociety.rule; public class RuleGreaterThan extends Rule { public RuleGreaterThan(int comparator, Integer conditionResult) } package cellsociety.rule; abstract public class Rule { public Rule(int comparator, Integer conditionResult) } package cellsociety; public class Main extends Application { public void start(Stage stage) } package cellsociety.model.cellMovement; public interface CellSocietyMovement { } package cellsociety.model.cellMovement; public class WaTorDeveloper { public void setResourceBundle(ResourceBundle bundle) public void initializeDevelopment(Cells myCell, Map parameters) public void energyVerification(Cells cell, Cells c, int energyUpdate) public void checkDevelopment(Cells myCell, List myNeighbors) public void reproductionVerification(Cells cell, Cells c) public Cells findRightState(Cells cell, List myNeighbors, int stateWanted) } package cellsociety.model.cellMovement; public class SchellingSegregationMovement implements CellSocietyMovement{ public void setInitialParameters(Cells cell, Grid grid, List neighbors, ResourceBundle statesBundle, public void checkState(Cells cell, int state) public void moveState(Cells cell) public void keepState(Cells cell) } package cellsociety.model.cellMovement; public class WaTorMovement implements CellSocietyMovement { public WaTorMovement() public void setInitialParameters(Cells cell, Grid grid, List neighbors, ResourceBundle statesBundle, public List getStep() public void checkState(Cells myCell, int state) public void keepState(Cells cell) public void moveState(Cells cell) } package cellsociety.model; public class WaTorModel extends CellSocietyModel { public WaTorModel(String type, Map parameters) public void setNextState(Cells myCell, int row, int col, Grid myGrid) } package cellsociety.model; public class PercolationModel extends CellSocietyModel { public PercolationModel(String type, Map parameters) public void setNextState(Cells myCell, int row, int col, Grid myGrid) } package cellsociety.model; public class SchellingSegregationModel extends CellSocietyModel { public SchellingSegregationModel(String type, Map parameters) public void setNextState(Cells myCell, int row, int col, Grid myGrid) } package cellsociety.model; public class Cells { public Cells(int initialState) public int getMyNextState() public void setMyNextState(Integer myNextState) public void updateMyCurrentState() public int getCurrentState() public void setCurrentState(Integer myCurrentState) } package cellsociety.model; public class FireModel extends CellSocietyModel { public FireModel(String type, Map parameters) public void setNextState(Cells myCell, int row, int col, Grid myGrid) } package cellsociety.model; * class takes a cell and determines its next state by using the Rules and ruleStructure packages. public abstract class CellSocietyModel { public CellSocietyModel(String myType, Map parameters) public abstract void setNextState(Cells myCell, int row, int col, Grid myGrid); public ErrorFactory getMyErrorFactory() } package cellsociety.model; public class GameOfLifeModel extends CellSocietyModel { public GameOfLifeModel(String type, Map parameters) public void setNextState(Cells myCell, int row, int col, Grid myGrid) } package cellsociety.model.neighbors; public class UpDownNeighbors extends CellSocietyNeighbors { public UpDownNeighbors() public List generateNeighbors(int row, int col, Grid myGrid) } package cellsociety.model.neighbors; public class RectangleNeighbors extends CellSocietyNeighbors { public RectangleNeighbors() public List generateNeighbors(int row, int col, Grid myGrid) } package cellsociety.model.neighbors; public abstract class CellSocietyNeighbors { public abstract List generateNeighbors(int row, int col, Grid myGrid); } package cellsociety.model.neighbors; public class DiagonalNeighbors extends CellSocietyNeighbors { public DiagonalNeighbors() public List generateNeighbors(int row, int col, Grid myGrid) } package cellsociety.model.neighbors; public class LeftRightNeighbors extends CellSocietyNeighbors { public LeftRightNeighbors() public List generateNeighbors(int row, int col, Grid myGrid) } package cellsociety.model.neighbors; public class FullNeighbors extends CellSocietyNeighbors { public FullNeighbors() public List generateNeighbors(int row, int col, Grid myGrid) } package cellsociety.view; public class CellColors { public static final List LIFE_STATE_COLORS = List.of( public static final List FIRE_STATE_COLORS = List.of( public static final List PERCOLATE_STATE_COLORS = List.of( public static final List SS_STATE_COLORS = List.of( public static final List WATOR_COLORS = List.of( public CellColors(CellSocietyController controller) public List getColorMap() public int getRandomCellState(int currState) public List getDefaultColorMap() } package cellsociety.view; public class CellSocietyViewComponents { public final Map colorMap = Map.of("Modooscuro", "DarkMode", "Modobajo", public CellSocietyViewComponents(String language, CellSocietyView cellSocietyView) public Node setupGameModePanel(BorderPane root) public Node setupTopText(Stage stage, BorderPane root) public Label setupAboutSection() public VBox populateAboutSection(CellSocietyController controller) } package cellsociety.view; public class GridView { public GridView(CellSocietyController controller) public GridPane setupGrid() public int getTotalCells() public int getColLength() public Shape[][] getMyPaneNodes() } package cellsociety.view; public class CellSocietyView { public CellSocietyView(CellSocietyController controller, String language, public Scene setupDisplay() public GridView getMyGridView() public Animation getAnimation() } package cellsociety.view; public class FactoryComponents { public FactoryComponents(String language) public Label makeLabel(String id) public void setLabel(Label label, String id) public Node makeButton(String label, CellSocietyView cell) public Slider makeSlider(String label, int min, int max, int increment) public ComboBox makeDropDownMenu(String id, String[] labels) public LineChart makeHistogram(String label, NumberAxis xAxis, NumberAxis yAxis) public BarChart makeBarChart(String label, CategoryAxis xAxis, NumberAxis yAxis) public CategoryAxis makeCategoryAxis(String label) public NumberAxis makeBarChartAxis(String label) public NumberAxis makeAxis(String label, double lowerBound, double upperBound, double tickSteps) public void nameSeries(String label, XYChart.Series series) public Alert createErrorMessage(String id, String content) } package cellsociety.view; public class CellView { public CellView(CellSocietyController controller) public Polygon drawCell(double x, double y, double r) } package cellsociety.Errors; public class ErrorFactory { public void updateError(String errorKey) public boolean errorExists() public String getErrorKey() public void setErrorNoLongerExists() }