package cellsociety.controller public class RuntimeLoop { public RuntimeLoop(Simulation simulation, GridPane grid) public void stepSimulation() throws Exception public void stopSimulation() public void resumeSimulation() } package cellsociety.controller public class Parser { public Parser(String simulation) throws IOException, SAXException, ImproperConfigurationException public String getGUITitle() public String getSimulationAuthor() public String getSimulationDescription() public int getNumberOfRows() public int getNumberOfColumns() public int[][] getInitialStateConfiguration() public double getFirstParameter() public double getSecondParameter() public double getThirdParameter() } package cellsociety.controller public class ImproperConfigurationException extends Exception{ } package cellsociety.controller public final class UserInput { public static void chooseSimulation(String stringSim) throws ImproperConfigurationException, SAXException, IOException public static void startSimulation() public static void stopSimulation() public static void resumeSimulation() public static void stepSimulation() throws Exception public static GridPane initializeGrid() throws Exception } package cellsociety public class Main extends Application { public void start(Stage stage) throws Exception } package cellsociety.Model public abstract class Simulation { public Simulation(int numRows, int numCols) public abstract void initializeCell(int rowNum, int colNum, int cellState) throws Exception public abstract void stepSimulation(int numSteps) public abstract String getCellState(int rowNum, int colNum) throws Exception protected abstract Grid initializeGrid(int numRows, int numCols) protected abstract HashMap initializeColorMap() protected abstract HashMap, Integer> initializeNeighborMap() protected abstract void calcCell(int rowNum, int colNum) protected abstract void updateNeighborMap(int rowNum, int colNum) protected int getCurrentState(int rowNum, int colNum) } package cellsociety.Model public class Grid { public Grid(int numRows, int numCols) public Grid(int numRows, int numCols, boolean eastWestWrap, boolean northSouthWrap) public int getCurrentCellState(int rowNum, int colNum) throws Exception public void applyUpdates() } package cellsociety.Model.Simulations public class GameOfLife extends Simulation { public GameOfLife(int numRows, int numCols) public void initializeCell(int rowNum, int colNum, int cellState) throws Exception public void stepSimulation(int numSteps) public String getCellState(int rowNum, int colNum) throws Exception protected Grid initializeGrid(int numRows, int numCols) protected HashMap initializeColorMap() protected HashMap, Integer> initializeNeighborMap() protected void calcCell(int rowNum, int colNum) protected void updateNeighborMap(int rowNum, int colNum) } package cellsociety.Model.Simulations public class Percolation extends Simulation { public Percolation(int numRows, int numCols) public void initializeCell(int rowNum, int colNum, int cellState) throws Exception public void stepSimulation(int numSteps) public String getCellState(int rowNum, int colNum) throws Exception protected Grid initializeGrid(int numRows, int numCols) protected HashMap initializeColorMap() protected HashMap, Integer> initializeNeighborMap() protected void calcCell(int rowNum, int colNum) protected void updateNeighborMap(int rowNum, int colNum) } package cellsociety.Model.Simulations public class WaTor extends Simulation { public WaTor(int numRows, int numCols, double fishBreedRate, double sharkBreedRate, public void initializeCell(int rowNum, int colNum, int cellState) throws Exception public void stepSimulation(int numSteps) public String getCellState(int rowNum, int colNum) throws Exception protected Grid initializeGrid(int numRows, int numCols) protected HashMap initializeColorMap() protected HashMap, Integer> initializeNeighborMap() protected void calcCell(int rowNum, int colNum) protected void updateNeighborMap(int rowNum, int colNum) } package cellsociety.Model.Simulations public class Segregation extends Simulation { public Segregation(int numRows, int numCols, double thresholdVal) public void initializeCell(int rowNum, int colNum, int cellState) throws Exception public void stepSimulation(int numSteps) public String getCellState(int rowNum, int colNum) throws Exception protected Grid initializeGrid(int numRows, int numCols) protected HashMap initializeColorMap() protected HashMap, Integer> initializeNeighborMap() protected void calcCell(int rowNum, int colNum) protected void updateNeighborMap(int rowNum, int colNum) } package cellsociety.Model.Simulations public class Fire extends Simulation { public Fire(int numRows, int numCols, double fireChance) public void initializeCell(int rowNum, int colNum, int cellState) throws Exception public void stepSimulation(int numSteps) public String getCellState(int rowNum, int colNum) throws Exception protected Grid initializeGrid(int numRows, int numCols) protected HashMap initializeColorMap() protected HashMap, Integer> initializeNeighborMap() protected void calcCell(int rowNum, int colNum) protected void updateNeighborMap(int rowNum, int colNum) } package cellsociety.Model public class Cell { public Cell() public Cell(int initState) public int getCurrentState() public void copyUpdate() } package cellsociety.view public class ViewManager{ public void makeScene(Stage stage) throws Exception public Scene makeGridScene(int width, int height, Stage stage) throws Exception } package cellsociety.view public class GridView extends GridPane { public static GridPane initializeGrid(int rowNum, int columnNum, Simulation mySimulation) throws Exception public static GridPane updateGrid(Simulation mySimulation) throws Exception }