package cellsociety.cells; public class SegregationCell extends Cell { public SegregationCell(int cellState, boolean isSatisfied, int x, int y) public boolean getSatisfaction() public int getXPos() public int getYPos() } package cellsociety.cells; public class WaTorCell extends Cell { public WaTorCell(int cellState, int age, int energyUnits, boolean hasMoved, int xPos, int yPos) public boolean getHasMoved() public int getEnergyUnits() public void setEnergyUnits(int newSharkEnergyUnits) public int getAge() public int getXPos() public int getYPos() } package cellsociety.cells; public class Cell { public Cell(int cellState) public int getMyCellState() public void setMyCellState(int newCellState) public int getRow() public void setRow(int row) public int getCol() public void setCol(int col) } package cellsociety; public class ResourceFileAccessor { public ResourceFileAccessor() public String getResource(String key) } package cellsociety.parser; public class ParseCSV { public static int[][] getInitialStates(String relativeFilePath) public static int[] getDimensions(String relativeFilePath) public static void printInitialStates(int[][] initialStates) } package cellsociety.parser; public class ParseSIM { public static HashMap parse(String relativeFilePath) public static void printSimData(String relativeFilePath) } package cellsociety.controller; public class IO { public static void saveStates(Game game, int numRows, int numCols) public static StringBuilder getStateData() public static StringBuilder getDimData() public static StringBuilder getPath() } package cellsociety.controller; * The purpose of this class is to get simulation metadata for the model and view packages public class Controller { public static int getNumRows(String relativeFilePath) public static int getNumCols(String relativeFilePath) public static int[][] getIStates(String relativeFilePath) } package cellsociety; public class Main extends Application { public void start(Stage stage) public static void applyCSS(Scene scene) } package cellsociety.model; public class GameOfLife extends Game { public int updateCellStateBasedOnNeighbors(int numNeighbors, Cell currentCell) public boolean neighborCellStateIsRelevant(Cell cell) } package cellsociety.model; public class Percolation extends Game { public Cell[][] getMyNextGeneration(Cell[][] currentGen) public HashSet getPercolatingCells(Cell[][] grid) } package cellsociety.model; public class WaTor extends Game { public Cell[][] getMyNextGeneration(Cell[][] grid) } package cellsociety.model.grids; public class HexagonGrid extends Grid { public boolean isCardinalNeighbor(int dy, int dx, int row, int col) } package cellsociety.model.grids; public class RectangleGrid extends Grid { public boolean isCardinalNeighbor(int dy, int dx, int row, int col) public boolean isCornerNeighbor(int dy, int dx, int row, int col) } package cellsociety.model.grids; public class Grid { public HashSet getCellNeighbors(Cell[][] grid, int row, int col, int neighborType, public void addNeighbor(Cell[][] grid, int row, int col, int neighborType, public boolean isAnyNeighbor(int dy, int dx, int row, int col) public boolean isCardinalNeighbor(int dy, int dx, int row, int col) public boolean isCornerNeighbor(int dy, int dx, int row, int col) } package cellsociety.model.grids; public class TriangleGrid extends Grid { public boolean isCardinalNeighbor(int dy, int dx, int row, int col) public boolean isCornerNeighbor(int dy, int dx, int row, int col) } package cellsociety.model; public class Game { public Grid myGridType = new RectangleGrid(); public void setMyPercentage(double percentage) public double getMyPercentage() public void setInitialCellGrid(Cell[][] incomingData) public void setNeighborType(int neighborType) public void setEdgePolicy(int edgePolicy) public void setGridType(int type) public Cell[][] getCurrentGeneration() public void runSimulation(int[][] grid) public int[][] convertCellsToInts(Cell[][] cellGrid) public Cell[][] convertIntsToCells(int[][] grid) public Cell[][] getMyNextGeneration(Cell[][] grid) public void updateNextGenGrid(Cell[][] grid, Cell[][] nextGen, int i, int j) public int updateCellStateBasedOnNeighbors(int numNeighbors, Cell currentCell) public int getCellNumberNeighbors(HashSet neighbors) public boolean neighborCellStateIsRelevant(Cell cell) } package cellsociety.model; public class Segregation extends Game { public boolean checkNeighborTypes(HashSet neighbors, int currentCellState) public HashSet updateNextGenGridSatisfactionStates(Cell[][] grid) public void updateNextGenUnsatisfiedCells(Cell[][] nextGen, HashSet cellsToAdd) public void addUnsatisfiedCell(Cell[][] nextGen, SegregationCell toAdd) public void updateNextGenSatisfiedCells(Cell[][] nextGen, HashSet cellsToAdd) public Cell[][] getMyNextGeneration(Cell[][] grid) } package cellsociety.model; public class SpreadingFire extends Game { public void setProbCatch(double prob) public double getProbCatch() public int burnTree(int numNeighbors) public int updateCellStateBasedOnNeighbors(int numNeighbors, Cell currentCell) public boolean neighborCellStateIsRelevant(Cell cell) } package cellsociety.view.cellviews; public class TriangleCellView extends CellView { public TriangleCellView(int x, int y, int width, int height, int shapeFlipper) public void changeColor(Color incomingColor) public Polygon getBlock() } package cellsociety.view.cellviews; public class RectangleCellView extends CellView { public RectangleCellView(int x, int y, int width, int height) public void changeColor(Color incomingColor) public Rectangle getBlock() } package cellsociety.view.cellviews; public class CellView { public Color getColor() } package cellsociety.view.cellviews; public class HexagonCellView extends CellView { public HexagonCellView(int x, int y, int width, int height) public void changeColor(Color incomingColor) public Polygon getBlock() } package cellsociety.view.gamedisplaypanels; public class BottomPanel extends Panel { public BottomPanel() public Node makeBottomPanel(Game game, EventHandler saveAction, Stage stage) public Node openAbout(Game game, HBox panel) } package cellsociety.view.gamedisplaypanels; public class TopPanel extends Panel { public TopPanel() public Node makeTopPanel(Game incomingGame, GamePanel gamePanel, GameBoard incominggameBoard) } package cellsociety.view.gamedisplaypanels; public class SpeedPanel extends Panel { public SpeedPanel() public Node makeSpeedPanel(Game incomingGame, int gameChoser, GameBoard incomingGameBoard) } package cellsociety.view.gamedisplaypanels; public class ChangePanel extends Panel { public ChangePanel() public Node makeChangePanel(Game game) } package cellsociety.view.gamedisplaypanels; public class GamePanel extends Panel { public GamePanel() public Node makeGamePanel(Game incomingGame, GameBoard incomingGameBoard) public void addSecondGame(Game secondGame, GameBoard secondGameBoard) public void changeColorSet() } package cellsociety.view; public class InitialDisplay extends Panel { public InitialDisplay() public Node setUpInitialDisplay() public Game getGame() public List getColors() } package cellsociety.view; public class OverallDisplay { public OverallDisplay() public Scene setUpDisplay(int width, int height, Paint background, Stage stage) public void setUpSecondaryScene(Stage stage) public void setUpTertiaryScene(Stage stage) } package cellsociety.view; public class GameDisplay extends Panel { public GameDisplay() public Node setUpDisplay(Game incomingGame, int gameChoser, GameBoard incomingGameBoard, Stage stage) } package cellsociety.view; public class GameSetUpDisplay extends Panel { public GameSetUpDisplay() public Node makeGameSetUpDisplay(Game game, List colorSet) public GameBoard getGameBoard() public void setColors(List colors) } package cellsociety.view.gameboards; public class RectangleGameBoard extends GameBoard { public RectangleGameBoard(int numRowsIncoming, int numColsIncoming, List colorSetIncoming, String incomingRelativeFilePath, double secondsDelayIncoming, int cellViewTypeIncoming) public void addDisplayBoard() public void makeNewCellView(Group group, int iVal, int x, int y, int width, int height, int shapeFlipper) public void updateDisplayBoard(int i, int j, Game game) } package cellsociety.view.gameboards; public class HexagonGameBoard extends GameBoard { public HexagonGameBoard(int numRowsIncoming, int numColsIncoming, List colorSetIncoming, String incomingRelativeFilePath, double secondsDelayIncoming, int cellViewTypeIncoming) public void addDisplayBoard() public void makeNewCellView(Group group, int iVal, int x, int y, int width, int height, int shapeFlipper) public void updateDisplayBoard(int i, int j, Game game) } package cellsociety.view.gameboards; public class TriangleGameBoard extends GameBoard { public TriangleGameBoard(int numRowsIncoming, int numColsIncoming, List colorSetIncoming, String incomingRelativeFilePath, double secondsDelayIncoming, int cellViewTypeIncoming) public void addDisplayBoard() public void makeNewCellView(Group group, int iVal, int x, int y, int width, int height, int shapeFlipper) public void updateDisplayBoard(int i, int j, Game game) } package cellsociety.view.gameboards; public class GameBoard { public GameBoard(int numRowsIncoming, int numColsIncoming, List colorSetIncoming, String incomingRelativeFilePath, double secondsDelayIncoming, int cellViewTypeIncoming) public int[][] getDisplayBoardBackground() public void setColorSet(List colors) public double getSecondsDelay() public void setSecondsDelay(double secondsDelayIncoming) public void makeNewCellView(Group group, int i, int x, int y, int width, int height, int shapeFlipper) public void addDisplayBoard() public void updateDisplayBoard(int i, int j, Game game) public void setUpBoard(Group group, Game game) public void updateVisualCells(Game game) }