package cellsociety.controller.wrappers; public class ColorState implements Iterable { public ColorState() public ColorState(int rows, int cols) public void setColorAt(Position pos, ColorCell colorCell) public ColorCell getColorAt(Position pos) public Position getPositionOfCell(ColorCell cell) public int getNumberOfRows() public int getCols() public Iterator iterator() public boolean hasNext() public ColorCell next() } package cellsociety.controller.wrappers; public class ColorCell { public static final Color DEFAULT_COLOR public ColorCell() public ColorCell(Color color) public Color getColor() } package cellsociety.controller; public interface ParseMethod { void handleValue(String s) throws IOException; } package cellsociety.controller; public class GridController { public GridController(SIMFileData data) throws Exception public ColorState stateToColors(ImmutableGrid grid) } package cellsociety.controller; public class Timeline { public Timeline(View view) public void initialize(SIMFileData data, Grid grid) protected javafx.animation.Timeline getAnimation() public void play() public void pause() public void stepForward() public void resetKeyFrames(double rate) public ImmutableGrid getMostRecentGrid() public int getIterations() public void decrementIterations() } package cellsociety.controller.translator; public class RockPaperScissorsCellTranslator extends CellTranslator { public RockPaperScissorsCellTranslator() public RockPaperScissorsCellTranslator(List colors) public String integerToCell(int integer) public int cellToInteger(ImmutableCell cell) public ColorCell cellToColorCell(ImmutableCell cell) } package cellsociety.controller.translator; public class GameOfLifeCellTranslator extends CellTranslator { public GameOfLifeCellTranslator() public GameOfLifeCellTranslator(List colors) public String integerToCell(int integer) public int cellToInteger(ImmutableCell cell) public ColorCell cellToColorCell(ImmutableCell cell) } package cellsociety.controller.translator; public abstract class CellTranslator { public abstract String integerToCell(int integer); public abstract int cellToInteger(ImmutableCell cell); public abstract ColorCell cellToColorCell(ImmutableCell cell); } package cellsociety.controller.translator; public class PercolationCellTranslator extends CellTranslator { public PercolationCellTranslator() public PercolationCellTranslator(List colors) public String integerToCell(int integer) public int cellToInteger(ImmutableCell cell) public ColorCell cellToColorCell(ImmutableCell cell) } package cellsociety.controller.translator; public class SpreadingOfFireCellTranslator extends CellTranslator { public SpreadingOfFireCellTranslator() public SpreadingOfFireCellTranslator(List colors) public String integerToCell(int integer) public int cellToInteger(ImmutableCell cell) public ColorCell cellToColorCell(ImmutableCell cell) } package cellsociety.controller.translator; public class WaTorCellTranslator extends CellTranslator { public WaTorCellTranslator() public WaTorCellTranslator(List colors) public String integerToCell(int integer) public int cellToInteger(ImmutableCell cell) public ColorCell cellToColorCell(ImmutableCell cell) } package cellsociety.controller.translator; public class SegregationCellTranslator extends CellTranslator { public SegregationCellTranslator() public SegregationCellTranslator(List colors) public String integerToCell(int integer) public int cellToInteger(ImmutableCell cell) public ColorCell cellToColorCell(ImmutableCell cell) } package cellsociety.controller; public class ClassFactory { public static Object createInstance(String className) public static Object createInstance(String className, Class[] parameterTypes, } package cellsociety.controller; public class Controller { public Controller(Stage theStage) public void begin() public View getView() public void loadGame() public void saveGame() throws IOException public SimulationManager getManager() } package cellsociety.controller; public class SimulationManager { public SimulationManager(SIMFileData data, int rows, int cols) public ColorState setCellStatus(String state, Position position) } package cellsociety.controller.button_actions; public class StartSimulation implements UIButton { public void doAction(ButtonInfo info) } package cellsociety.controller.button_actions; public class ResumeSimulation implements UIButton { public void doAction(ButtonInfo info) } package cellsociety.controller.button_actions; public class DisplaySimulationInformation implements UIButton { public void doAction(ButtonInfo info) public void initializeStage() public void formatPane() public void formatInfoDisplay() public void formatSimulationSelector() public void enableSimulationSelector() public void createInfoPopup() } package cellsociety.controller.button_actions; public class CreateNewSimulation implements UIButton { public void doAction(ButtonInfo info) } package cellsociety.controller.button_actions; public class PauseSimulation implements UIButton { public void doAction(ButtonInfo info) } package cellsociety.controller.button_actions; public class LoadSelectedCSV implements UIButton { public void doAction(ButtonInfo info) } package cellsociety.controller.button_actions; public interface UIButton { void doAction(ButtonInfo info); } package cellsociety.controller.button_actions; public class StepForward implements UIButton { public void doAction(ButtonInfo info) } package cellsociety.controller; public class FileManager { public static final String DATA_FILE_FOLDER public Grid loadGridFile(Stage primaryStage) public SIMFileData getFileData() public void saveGridFile(Stage primaryStage, ImmutableGrid grid) throws IOException protected Grid getGridState() protected void parseSimFile(File file) } package cellsociety.controller; public class SIMFileData { public String getGame() public void setGame(String game) public String getAuthor() public String getTitle() public String getDescription() public String getParameters() public List getStateColors() public void setTitle(String title) public void setAuthor(String author) public void setDescription(String description) public void setStateColors(String[] colorCodes) public void setParameters(String parameters) } package cellsociety; public class Main extends Application { public void start (Stage primaryStage) } package cellsociety.model.automata; public class GameOfLife extends CellularAutomata { public GameOfLife(Grid startState) public ImmutableGrid execute() } package cellsociety.model.automata; public abstract class CellularAutomata { public abstract ImmutableGrid execute(); } package cellsociety.model.automata; public class RockPaperScissors extends CellularAutomata { public static final double THRESHOLD public RockPaperScissors(Grid startGrid) public ImmutableGrid execute() } package cellsociety.model.automata; public class Percolation extends CellularAutomata { public Percolation(Grid startState) public ImmutableGrid execute() } package cellsociety.model.automata; public class WaTor extends CellularAutomata { public WaTor(Grid startState) public ImmutableGrid execute() } package cellsociety.model.automata; public class SpreadingOfFire extends CellularAutomata { public SpreadingOfFire(Grid start) public ImmutableGrid execute() } package cellsociety.model.automata; public class Segregation extends CellularAutomata { public Segregation(Grid startGrid) public ImmutableGrid execute() } package cellsociety.model; public record Position(int row, int column) { } package cellsociety.model.cell; public class InvalidCellStateException extends RuntimeException{ public InvalidCellStateException(String message) public InvalidCellStateException(String message, Throwable cause) } package cellsociety.model.cell; public class RockPaperScissorsCell extends Cell { public RockPaperScissorsCell() public RockPaperScissorsCell(String startState) } package cellsociety.model.cell; public class PercolationCell extends Cell { public PercolationCell() public PercolationCell(String startState) } package cellsociety.model.cell; public class SegregationCell extends Cell { public SegregationCell() public SegregationCell(String startState) } package cellsociety.model.cell; public class CellNotFoundException extends RuntimeException { } package cellsociety.model.cell; public class SpreadingOfFireCell extends Cell { public SpreadingOfFireCell() public SpreadingOfFireCell(String startState) } package cellsociety.model.cell; public class InvalidWaTorOperationException extends RuntimeException { public InvalidWaTorOperationException() public InvalidWaTorOperationException(String message) public InvalidWaTorOperationException(String message, Throwable cause) } package cellsociety.model.cell; public interface ImmutableCell { String getState(); Iterator iterator(); } package cellsociety.model.cell; public class WaTorCell extends Cell { public static final int ENERGY_PER_FISH_CONSUMED public static final int START_ENERGY public static final int REPRODUCTION_THRESHOLD public WaTorCell() public WaTorCell(String type) public boolean canReproduce() public boolean depriveEnergy() throws InvalidWaTorOperationException public int gainEnergy() public void resetSurvivedSteps() public void incrementSurvivedSteps() } package cellsociety.model.cell; public class GameOfLifeCell extends Cell { public GameOfLifeCell() public GameOfLifeCell(String startState) } package cellsociety.model.cell; public abstract class Cell implements ImmutableCell, Iterable { protected void initializeCell(List states, String message, String startState) public void setState(String newState) throws InvalidCellStateException public String getState() public Iterator iterator() } package cellsociety.model.neighborhood; public abstract class Neighborhood { protected void initializeNeighborhood(Grid gridState, Cell startCell) protected Grid getGrid() protected Cell getCell() protected boolean isInBounds(Position position) public abstract NeighborData getNeighbors(); } package cellsociety.model.neighborhood; public class CompleteNeighborhood extends Neighborhood { public CompleteNeighborhood(Grid gridState, Cell start) public NeighborData getNeighbors() } package cellsociety.model.neighborhood; public class CardinalNeighborhood extends Neighborhood { public CardinalNeighborhood(Grid gridState, Cell start) public NeighborData getNeighbors() } package cellsociety.model.neighborhood; public class NeighborData implements Iterable { public NeighborData(List cells) public Iterator iterator() } package cellsociety.model.grid; public class WaTorGrid extends SimpleGrid { public WaTorGrid() public WaTorGrid(Integer rows, Integer cols) protected WaTorCell createCell() } package cellsociety.model.grid; public interface Grid extends ImmutableGrid { Cell getCellAt(Position position); Position getPositionOf(ImmutableCell cell); int getRows(); int getColumns(); void apply(Consumer action); void setCellState(String cellState, Position position); } package cellsociety.model.grid; public class GameOfLifeGrid extends SimpleGrid { public GameOfLifeGrid() public GameOfLifeGrid(Integer rows, Integer cols) protected GameOfLifeCell createCell() } package cellsociety.model.grid; public class RockPaperScissorsGrid extends SimpleGrid { public RockPaperScissorsGrid() public RockPaperScissorsGrid(Integer rows, Integer cols) protected RockPaperScissorsCell createCell() } package cellsociety.model.grid; public abstract class SimpleGrid implements Grid, ImmutableGrid { public static final int DEFAULT_COLS public static final int DEFAULT_ROWS public SimpleGrid() public SimpleGrid(Integer rows, Integer cols) protected abstract T createCell(); public void setCellState(String state, Position pos) public void setCell(T cell, Position pos) public T getCellAt(Position pos) throws IndexOutOfBoundsException public Position getPositionOf(ImmutableCell cell) throws CellNotFoundException public int getRows() public int getColumns() public void applySpecific(Consumer action) public void apply(Consumer action) public void applyImmutable(Consumer action) } package cellsociety.model.grid; public class PercolationGrid extends SimpleGrid { public PercolationGrid() public PercolationGrid(Integer rows, Integer cols) protected PercolationCell createCell() } package cellsociety.model.grid; public class SegregationGrid extends SimpleGrid { public SegregationGrid() public SegregationGrid(Integer rows, Integer cols) protected SegregationCell createCell() } package cellsociety.model.grid; public class SpreadingOfFireGrid extends SimpleGrid { public SpreadingOfFireGrid() public SpreadingOfFireGrid(Integer rows, Integer cols) protected SpreadingOfFireCell createCell() } package cellsociety.model.grid; public interface ImmutableGrid { ImmutableCell getCellAt(Position position); Position getPositionOf(ImmutableCell cell); int getRows(); int getColumns(); void applyImmutable(Consumer action); } package cellsociety.view.buttons; public record ButtonInfo(String name, String DisplayName, Group group, int height, int width, int XPos, int YPos, Timeline timeline, Controller controller) { } package cellsociety.view.buttons; public class ButtonFactory{ public Button createButton(ButtonInfo info) } package cellsociety.view; public class ViewPane extends BorderPane { public static final double SCENE_WIDTH public static final double SCENE_HEIGHT public static final double LEFT_SCENE_WIDTH_SCALE public static final double BOTTOM_SCENE_HEIGHT_SCALE public static final double RIGHT_SCENE_WIDTH_SCALE public static final double LEFT_SCENE_HEIGHT_SCALE public static final double RIGHT_SCENE_HEIGHT_SCALE public static final double CENTER_SCENE_HEIGHT_SCALE public static final double CENTER_SCENE_WIDTH_SCALE public static final double BOTTOM_SCENE_WIDTH_SCALE public ViewPane() public Group getLeftRoot() public Group getRightRoot() public Group getBottomRoot() public Group getCenterRoot() } package cellsociety.view; public class GridScene { } package cellsociety.view; public class SimulationSelectionDropdown { } package cellsociety.view; public class StartScene { public StartScene(Stage stage) } package cellsociety.view; public class CellStatusDropdown extends ChoiceBox { public CellStatusDropdown(double width, double height, Cell cell) } package cellsociety.view; public class View { public View(Controller controller) public Scene getScene() public ViewPane getPane() public void makeStartScene(ViewPane pane) public void initializeTimeline(Timeline timeline) public void initializeButtons() public Timeline getTimeline() public Controller getController() public void updateGrid(ColorState colorState) } package cellsociety.view; public class AnimationRateSlider { public Slider createSlider(ButtonInfo sliderInfo) public void formatSlider(ButtonInfo sliderInfo) public void createSliderLabel(ButtonInfo sliderInfo) } package cellsociety.view; public class Histogram { public Histogram() public BarChart getHistogram() public void createHistogram(ColorState colorState) } package cellsociety.view.grid; public class CellularAutomataGrid extends Pane { public static final int GRID_SIZE public CellularAutomataGrid() public void updateGrid(ColorState colorState, Runnable action) } package cellsociety.view.grid; public class RectangularGrid extends CellularAutomataGrid { public static final int DEFAULT_ROWS public static final int DEFAULT_COLUMNS public RectangularGrid() public void updateGrid(ColorState colorState, Runnable action) } package cellsociety.view.grid; public class RectangularGridCell extends Rectangle { public RectangularGridCell(double width, double height, Position position) public Position getCellPosition() }