package controller.parser; public class CSVInitialStatesFileParser implements InitialStateParser { public CSVInitialStatesFileParser(ErrorHandler errorHandler, ResourceBundle errorMessages) public Board createInitialBoard(Properties gameProperties) } package controller.parser; public class GameInfoFileParser implements GameInfoFileParsing { public GameInfoFileParser(ErrorHandler errorHandler, ResourceBundle errorMessages) public Properties parseInfoFile(String infoFileName, Boolean requiredKeys) public ErrorHandler getMyErrorHandler() } package controller.parser; public interface InitialStateParser { } package controller.parser; public interface GameInfoFileParsing { } package controller; public class Controller { public Controller(String language, View view, GamePropertiesView propertiesView) public void launchGameProperties(String title) public void launchGame(String title, boolean grid, List color) public void setupUserChosenGame(String infoFile) public void updateClickedCell(int newState, int x, int y) public void step() public void resetGame() public void setMyLanguage(String language) public Properties getMyGameProperties() } package controller; * Everytime an error is found in anything within the controller package (translator, generator). This method public class ErrorHandler { public boolean isErrorFound() public void setErrorFound(String message) public void setErrorHandled() } public class Main extends Application { public void start(Stage stage) } package model.board; public interface ImmutableBoard { } package model.board; public class ArrayBoard implements Board, ImmutableBoard { public ArrayBoard(int height, int width) public ArrayBoard(Board initialBoard, String cellClassName) public int getBoardWidth() public int getBoardHeight() public int getCellState(int x, int y) public Cell getCell(int x, int y) public void setCell(Cell cell, int x, int y) public void printBoard() public boolean equals(Object obj) } package model.board; public interface Board { } package model.cellprocessor; public class SpreadingOfFireCellProcessor extends CellProcessor { public SpreadingOfFireCellProcessor(Board initialBoard) public void setUpAdditionalParameters(Properties properties) public void changeCellToNextState(Cell currentCell) public Cell getCellToUpdate(int i, int j) public void setNextBoardState() public boolean isAValidNeighbor(int x, int y, int changeX, int changeY, int edgePolicy) public void setupGame(Board newBoard) public void setMyBurnProbability(double myBurnProbability) public void setMySpawnProbability(double mySpawnProbability) public void setMySpontaneousBurnProbability(double mySpontaneousBurnProbability) public void setRandomSeed(int seedVal) } package model.cellprocessor; public abstract class CellProcessor { public CellProcessor(Board initialBoard) public abstract void setUpAdditionalParameters(Properties properties) ; public void setNextBoardState() public void updateCell(int i, int j) public abstract Cell getCellToUpdate(int i, int j); public abstract void changeCellToNextState(Cell currentCell); public abstract boolean isAValidNeighbor(int x, int y, int changeX, int changeY, int edgePolicy); public boolean checkOutOfBounds(int x, int y) public void setupGame(Board newBoard) public void resetBoard() public ImmutableBoard getImmutableBoard() public Board getMyMutableBoard() public void setMyBoard(Board curBoard) public void setMyNumCellSides(int numCellSides) throws InvalidParameterException public void setMyEdgePolicy(String edgePolicy) throws InvalidParameterException } package model.cellprocessor; public class PercolationCellProcessor extends CellProcessor { public PercolationCellProcessor(Board initialBoard) public void setUpAdditionalParameters(Properties properties) public void setNextBoardState() public Cell getCellToUpdate(int i, int j) public boolean checkIfPercolated() public void changeCellToNextState(Cell currentCell) public boolean isAValidNeighbor(int x, int y, int changeX, int changeY,int edgePolicy) public void setupGame(Board initialState) } package model.cellprocessor; public class WaTorCellProcessor extends CellProcessor { public WaTorCellProcessor(Board initialBoard) public void setUpAdditionalParameters(Properties properties) public void setNextBoardState() public Cell getCellToUpdate(int i, int j) public void changeCellToNextState(Cell currentCell) public boolean isAValidNeighbor(int x, int y, int changeX, int changeY, int edgePolicy) public void setupGame(Board initialBoard) public void setRandomSeed(int seedVal) } package model.cellprocessor; public class SegregationCellProcessor extends CellProcessor { public SegregationCellProcessor(Board initialBoard) public void setUpAdditionalParameters(Properties properties) public boolean isAValidNeighbor(int x, int y, int changeX, int changeY, int edgePolicy) public void changeCellToNextState(Cell c) public void setupGame(Board initialBoard) public Cell getCellToUpdate(int x, int y) public void setRandomSeed(int seedVal) } package model.cellprocessor; public class GameOfLifeCellProcessor extends CellProcessor { public GameOfLifeCellProcessor(Board initialBoard) public void setUpAdditionalParameters(Properties properties) public boolean isAValidNeighbor(int x, int y, int changeX, int changeY, int edgePolicy) public void changeCellToNextState(Cell c) public void setNextBoardState() public Cell getCellToUpdate(int i, int j) public void setupGame(Board initialState) } package model.cell; public class WaTorCell extends Cell { public WaTorCell() public WaTorCell(int state) public int getEnergy() public int getFertility() public void setEnergy(int energy) public void incrementFertility() public void incrementEnergy(int amount) public void decrementEnergy() public boolean isOutOfEnergy() public void resetFertility() } package model.cell; public class Cell { public Cell(int state) public int getState() public void setState(int state) public int getX() public int getY() public void setX(int x) public void setY(int y) public int getSides() public void setSides(int mySides) } package view; public class GraphView extends ViewUtilities{ public GraphView(String language, BoardDisplay currentBoardDisplay, int maxStates) public void updateGraph(ImmutableBoard newStepBoardDisplay) public BarChart getMyBarChart() } package view; public class GameSelectionView extends ViewUtilities { public GameSelectionView(String language) public Scene setupDisplay(Controller c) public Scene setupGameSelectionDisplay(Controller c) } package view; public abstract class ViewUtilities { public ViewUtilities(String language) } package view; public class CellDisplay extends Rectangle { public CellDisplay(int startingState, int x, int y, Controller controller) public void incrementState(Controller controller) public int getMyState() } package view; public class View extends ViewUtilities { public static final String SIM_FILE_EXTENSION_DESCRIPTION = "Sim Files (*.sim)"; public static final String CSV_FILE_EXTENSION_DESCRIPTION = "CSV Files (*.csv)"; public View(String language) public void setupDisplay(String title, Controller controller, boolean gridLines, List colors) public void updateLanguageChangeFromStyleFile(String lang) public void handlePlayGame(Controller controller) public void setupChosenGameInView(ImmutableBoard myStartingBoard, Properties gameInfo, Properties gameStyle, Controller controller) public void updateDisplay(ImmutableBoard myCurrentBoard) public void setMyStage(Stage stage) public void showErrorInView(String errorMessage) public void updateGraph(BarChart myBarChart) } package view; public class BoardDisplay { public BoardDisplay(ImmutableBoard startingContents, Controller controller) public int getHeight() public int getWidth() public CellDisplay getCellDisplay(int x, int y) public void updateBoardDisplay(ImmutableBoard myCurrentContents) public void updateCellDisplays(Paint color1, Paint color2, Paint color3) } package view; public class GamePropertiesView extends ViewUtilities{ public GamePropertiesView(String language) public void setupDisplay(String title, Controller c) public void setupGamePropertiesDisplay(String title, Controller c) public void setMyStage(Stage s) }