package cellsociety; public class GameFactory { public Game createGame(ParseResult result) public GridView createView(ParseResult result) } package cellsociety; public class Main1 extends Application { public void start(Stage primaryStage) throws Exception } package cellsociety; public class GameEngine { public GameEngine(Stage primaryStage) } package cellsociety; public class Controller { public Controller(Game game, ScreenManager screenManager, GridView gridView) public void loop() public void pause() public void play() public void reset() public void edit() public void writeConfigFile(/* String path */) public double getGameSpeed() public void setGameSpeed(double gameSpeed) public int getGenerations() public void setGenerations(int generations) } package cellsociety; public class Main extends Application { public static final String DATA_FILE_FOLDER public void start(Stage primaryStage) public int calculateNumBlocks(File xmlFile) public double getVersion() } package cellsociety.model; public class GameOfLife extends Game { public GameOfLife(Grid grid) protected void updateGame() } package cellsociety.model; public class Grid { public Grid(int numRows, int numCols) public Cell getCell(int row, int col) public List getNeighbors(int row, int col) public boolean isInBounds(int row, int col) public int getRows() public int getCols() public void defaultInitializeCells() } package cellsociety.model; public class ForestFire extends Game { public ForestFire(Grid grid, double ignitionProbability, double fillProbability) public void updateGame() } package cellsociety.model; public abstract class Game { public Game(Grid grid) public void step() protected abstract void updateGame(); public Grid getGrid() public Cell getCell(int row, int col) } package cellsociety.model; public class Cell { public Cell(int state) public void setState(int state) public void setNextState(int state) public int getNextState() public int getState() } package cellsociety.view; public class ScreenManager { public ScreenManager(Stage stage, GridView gridToUse) public void gameScreen() public void startScreen() public void editSaveScreen() public void endScreen() } package cellsociety.view; public abstract class GridView { protected HashMap gridColors public GridView(String gameName, HashMap colors, int x, int y) protected abstract void initializeGridPane(); public abstract void updateCell(int row, int col, int state); public GridPane getGridPane() public int getNumRows() public int getNumCols() } package cellsociety.view; public class RectangularGridView extends GridView { public RectangularGridView(String gameName, HashMap colors, int x, int y) public void initializeGridPane() public void updateCell(int row, int col, int state) } package cellsociety; public class ParseResult { public ParseResult(int rows, int cols, String gameType, int[][] cells, double probCatch, double probGrow, public java.util.Map getColorMap() public int getRows() public int getCols() public String getGameType() public int[][] getCells() public double getProbCatch() public double getProbGrow() } package cellsociety; public class XMLParser { public static ParseResult parse(InputStream inputStream) }