package cellsociety.Controller public class Controller { public Controller(Stage stage) public void showFileChooserScreen() public void showSimulationScreen() public void initializeTimeline() public void slowSimulation() public void speedSimulation() public void resetTimeline() public void pause() public void resume() public void step() } package cellsociety.Controller public class ConfigReader { public ConfigReader(File file) throws Exception public HashMap getSimulationInfo() public int[][] getInitialCells() public HashMap getCellConfig() } package cellsociety public class Main extends Application { public void start(Stage stage) } package cellsociety.Model public class PercolationCell extends Cell { public PercolationCell(int x, int y, int width, int height, Grid grid, PercolationStates state) public void step() public boolean neighborIsPercolated() public String getColor() } package cellsociety.Model public class SegregationCell extends Cell { public SegregationCell(int x, int y, int width, int height, Grid grid, SegregationStates state) public void step() public boolean isBelowThreshold() public boolean isEmpty() public boolean isOfSameType(Cell cell) public String getColor() } package cellsociety.Model public class Grid { public Grid(int width, int height, String simulation, int[][] initialCells, public void step() public Cell getCellAtCoord(int x, int y) public Cell getMutableCellAtCoord(int x, int y) public void setCellAtCoord(int x, int y, Cell cell) public void createCells(String simulation, int[][] initialCells) public String getCellConfigValue(String key) public String[][] getColorGrid() public int[] returnEmptyCell() } package cellsociety.Model public class ConwayCell extends Cell { public ConwayCell(int x, int y, int width, int height, Grid grid, ConwayStates state) public void step() public String getColor() } package cellsociety.Model public class FireCell extends Cell { public FireCell(int x, int y, int width, int height, Grid grid, FireCellStates state) public void step() public boolean catchOnFire() public double generateRandomNumber() public boolean neighborsOnFire() public boolean isOnFire(Cell cell) public String getColor() } package cellsociety.Model public class WatorCell extends Cell { public WatorCell(int x, int y, int width, int height, Grid grid, Enum state, int lifeTime, public void step() public Cell clone() public String getColor() } package cellsociety.Model public class CellStates { public String getHexCode() public String getHexCode() public String getHexCode() public String getHexCode() public String getHexCode() } package cellsociety.Model public class Cell { public Cell(int x, int y, int width, int height, Grid grid, Enum state) public Cell clone() public String getColor() public void step() public Cell getSelf() public int getX() public int getY() protected Cell getTopNeighbor() protected Cell getBottomNeighbor() protected Cell getRightNeighbor() protected Cell getLeftNeighbor() protected Cell getTopRightNeighbor() protected Cell getTopLeftNeighbor() protected Cell getBottomRightNeighbor() protected Cell getBottomLeftNeighbor() protected List getAllNeighboringCells() protected void addToList(List list, Cell cell) protected boolean isInGrid(int x, int y) } package cellsociety.View public class FileChooserScreen { public FileChooserScreen(Stage stage, Controller controller) public ConfigReader getConfigReader() } package cellsociety.View public class GridView { public GridView(double height, double width, Color[][] grid, BorderPane borderPane) public void createShapeArray(Color[][] grid) public void createGrid(Color[][] grid) public void updateGrid(Color[][] colorGrid) } package cellsociety.View public class SimulationScreen { public SimulationScreen(Group group, Controller controller, ConfigReader configReader, public void update(String[][] colorGrid) } package cellsociety.View public class LandingScreen { public LandingScreen(Group group, Controller controller) }