package cellsociety.Cells; public class SchellingCell extends Cell { public SchellingCell(int xCoordinate, int yCoordinate) } package cellsociety.Cells; public class FireCell extends Cell { public FireCell(int xCoordinate, int yCoordinate) } package cellsociety.Cells; public class LifeCell extends Cell { public LifeCell(int xCoordinate, int yCoordinate) } package cellsociety.Cells; public class WatorCell extends Cell { public WatorCell(int xCoordinate, int yCoordinate) public void resetLifeCycle() public boolean reproduce(int breedingTime) public void move(int xCoordinate, int yCoordinate) public int getEnergy() public void setEnergy(int energy) public void age() } package cellsociety.Cells; public abstract class Cell { public Cell(int xCoordinate, int yCoordinate) public String getStatus() public void setStatus(String s) public int getX() public int getY() public void setX(int x) public void setY(int y) } package cellsociety; public class Grid{ public static final ResourceBundle NAMES_FILE public Grid(int width, int height, String simType) public Cell getCell(int x, int y) public void setCell(int x, int y, String status) public int getColNum() public int getRowNum() public List> getGrid() } package cellsociety.Controller; public interface SimulationController { void stepAnimation(); void pauseToggle(); void setAnimationSpeed(double multiplier); boolean isNewFrame(); void incrementFrame(); void resetFrameNum(); boolean isPaused(); boolean isStep(); void setStepFalse(); void setNewFile(boolean state); boolean isNewFile(); } package cellsociety.Controller; public class SimulationManager implements SimulationController { public SimulationManager() public void stepAnimation() public boolean isNewFrame() public int getFrameNum() public void incrementFrame() public boolean isPaused() public void resetFrameNum() public void pauseToggle() public void setStepFalse() public void setNewFile(boolean state) public boolean isNewFile() public boolean isStep() public void setAnimationSpeed(double value) } package cellsociety.Controller; public class GameLoopManager extends Application { public static final ResourceBundle NAMES_FILE public void start(Stage primaryStage) throws Exception public void startEngine(String simType) throws Exception } package cellsociety; public interface ConfigInterface { void readFile(File file); Document saveXML(String state, Map parameters) String getVariant(); String getName(); String getAuthor(); String getDescription(); } package cellsociety.simulations; public abstract class Simulation { public Simulation(String deadString, String aliveString) public int countNeighbors(List neighbors, String state) public String getAliveString() public String getDeadString() public String getUpdatedCellStatus(Cell hold, List findNeighbors) public abstract Cell randomize(Map params, int xPos, int yPos); } package cellsociety.simulations; public class Life extends Simulation { public static final Random RAND_NUM_GEN public Life(String deadString, String aliveString) public String getUpdatedCellStatus(Cell cell, List neighbors) public Cell randomize(Map parameters, int xCoordinate, int yCoordinate) } package cellsociety.simulations; public class WaTor extends Simulation { public static final Random RAND_NUM_GEN public WaTor(String emptyString, String fishString, String sharkString, public void setFishBreedingTime(double breedingTime) public void setSharkBreedingTime(double breedingTime) public void setSharkEnergy(double energy) public void setEnergyPerFish(double energy) public void addFishCell(WatorCell cell) public void addSharkCell(WatorCell cell) public List getFishCells() public List getSharkCells() public void moveCell(Cell cell, List neighbors) public void moveCell(WatorCell cell, List neighbors) public WatorCell randomize(Map parameters, int xCoordinate, int yCoordinate) } package cellsociety.simulations; public class Schelling extends Simulation { public static final Random RAND_NUM_GEN public Schelling(String emptyString, String stateAString, String stateBString, double threshold) public void setThreshold(double threshold) public void addEmptyCell(Cell cell) public String getUpdatedCellStatus(Cell cell, List neighbors) public void moveCells() public Cell randomize(Map parameters, int xCoordinate, int yCoordinate) } package cellsociety.simulations; public class Fire extends Simulation { public static final Random RAND_NUM_GEN public Fire(String emptyString, String treeString, String burningString, double probCatch) public void setProbCatch(double probCatch) public String getUpdatedCellStatus(Cell cell, List neighbors) public Cell randomize(Map parameters, int xCoordinate, int yCoordinate) } package cellsociety; public class Main{ } package cellsociety.GUI; public abstract class ButtonContainer { public ButtonContainer() public Button createButton(String word) public Button createButton(String word, Pane container, EngineInterface engine, TextField textField) public HBox getContainer() } package cellsociety.GUI.ButtonContainers; public class GameButtonContainer extends ButtonContainer { public GameButtonContainer(EngineInterface simulationEngine, SimulationController controller, ResourceBundle bundle) } package cellsociety.GUI.ButtonContainers; public class GraphButtons extends ButtonContainer { public GraphButtons(ResourceBundle bundle, VisualGraphInterface visualGraph) } package cellsociety.GUI.ButtonContainers; public class ParameterButtons extends ButtonContainer { public ParameterButtons(EngineInterface engine) } package cellsociety.GUI; public class DescriptionBox { public DescriptionBox(ConfigInterface config) public VBox getDescriptionContainer() } package cellsociety.GUI; public class FileSaver { public FileSaver(String label, ConfigInterface config, EngineInterface simulationEngine) public Button getButton() } package cellsociety.GUI; public class FileButtonContainer { public FileButtonContainer(FileSaver saver, FileUploader uploader) public HBox getContainer() } package cellsociety.GUI.Grids; public class RectangleVisualGrid extends VisualGrid { public RectangleVisualGrid(int columns, int rows) public void updateEntireGrid(Grid grid) public void updateCell(int x, int y, String state) public void resetGrid(double gridSize) public GridPane getGridLayout() public int getHeight() public int getWidth() } package cellsociety.GUI; public class GUIContainer { public GUIContainer(Stage primaryStage, String language, ConfigInterface config, EngineInterface simulationEngine, SimulationController controller, VisualGrid grid, VisualGraphInterface graph) public void setUpSliderContainer(SimulationController animation) } package cellsociety.GUI; public class SliderContainer { public SliderContainer(String caption, SimulationController animation) public VBox getContainer() } package cellsociety.GUI; public abstract class VisualGrid { public VisualGrid(int Width, int Height) public abstract void updateCell(int x, int y, String state); public int getHeight() public int getWidth() public abstract Pane getGridLayout(); public abstract void updateEntireGrid(Grid grid); } package cellsociety.GUI; public class FileUploader { public FileUploader(String label, ConfigInterface config, SimulationController controller) public Button getButton() } package cellsociety.GUI; public class DropDown { public DropDown(List list, String buttonLabel, ConfigInterface config, SimulationController controller) public VBox getContainer() } package cellsociety.GUI.Graphs; public class PieVisualGraph implements VisualGraphInterface { public static final ResourceBundle LANGUAGE public PieVisualGraph(Grid dataGrid) public void updateGraph() protected void layoutChartChildren(double top, double left, double contentWidth, double contentHeight) public void showGraph() } package cellsociety.GUI; public interface VisualGraphInterface { void updateGraph(); void showGraph(); } package cellsociety; public class Config implements ConfigInterface { public final List paramName public final List strTagNames public Config() public void readFile(File xmlFile) public boolean checkValidXML(File xmlFile) public void updateXML(Element root) public Document saveXML(String state, Map parameters) public String getVariant() public Map getSimParam() public int getWidth() public int getHeight() public String getInitState() public String getDescription() public String getAuthor() public String getName() } package cellsociety.Engine; public class FireEngine extends SimEngine { public FireEngine(VisualGrid visualGrid, String initState, Grid grid, Grid initGrid, public void updateGameState() public List findNeighbors(Cell cell) public String gridToStr(Grid grid) public void setParamValue(String param, Double newValue) } package cellsociety.Engine; public abstract class SimEngine implements EngineInterface { public static final ResourceBundle NAMES_FILE public SimEngine(VisualGrid visualGrid, String initState, Grid grid, Grid initGrid, public List> strToGrid(String initState) public List> strIntConverter(List> stateList) public void listToGrid(List> intGrid, Grid grid) throws Exception public abstract void updateGameState(); public void saveNextState() public void updateNextState() public abstract List findNeighbors(Cell cell); public List findCornerNeighbors(Cell cell) public void reset() public void blankStart() public void randomizeStart() public abstract String gridToStr(Grid grid); public String arrListToStr(List> arrList) public Cell getCell(int x, int y) public Grid getGrid() public Map getParams() public Set getParamWords() public void setParamValue(String param, Double newValue) } package cellsociety.Engine; public class WatorEngine extends SimEngine { public WatorEngine(VisualGrid visualGrid, String initState, Grid grid, Grid initGrid, public void updateGameState() public List findNeighbors(Cell cell) public String gridToStr(Grid grid) public void setParamValue(String param, Double newValue) } package cellsociety.Engine; public class SegEngine extends SimEngine { public SegEngine(VisualGrid visualGrid, String initState, Grid grid, Grid initGrid, public void updateGameState() public void saveNextState() public List findNeighbors(Cell cell) public String gridToStr(Grid grid) public void setParamValue(String param, Double newValue) } package cellsociety.Engine; public class LifeEngine extends SimEngine { public LifeEngine(VisualGrid visualGrid, String initState, Grid grid, Grid initGrid, public void updateGameState() public List findNeighbors(Cell cell) public String gridToStr(Grid grid) public void setParamValue(String param, Double newValue) } package cellsociety.Engine; public interface EngineInterface { void randomizeStart(); void blankStart(); void reset(); void updateGameState(); Set getParamWords(); Grid getGrid(); String gridToStr(Grid grid); Map getParams(); void setParamValue(String param, Double newValue); }