package cellsociety; public class Main extends Application { public static final Dimension DEFAULT_SIZE = new Dimension(500, 400); public void start(Stage primaryStage) } package cellsociety.model.shape; public class SquareModel extends ShapeModel { public SquareModel() public List> getEdgeNeighborIndices(int row, int column) public List> getCornerNeighborIndices(int row, int column) } package cellsociety.model.shape; public class TriangleModel extends ShapeModel { public TriangleModel() public List> getEdgeNeighborIndices(int row, int column) public List> getCornerNeighborIndices(int row, int column) } package cellsociety.model.shape; public class HexagonModel extends ShapeModel { public HexagonModel() public List> getEdgeNeighborIndices(int row, int column) public List> getCornerNeighborIndices(int row, int column) } package cellsociety.model.shape; public abstract class ShapeModel { public ShapeModel(ResourceBundle resourcesBundle, String listSeparator) public abstract List> getEdgeNeighborIndices(int row, int column); public abstract List> getCornerNeighborIndices(int row, int column); public List> getCompleteNeighborIndices(int row, int column) } package cellsociety.model.handlefiles; public class MakeRandomDistributionInitialStates extends MakeRandomStates { public MakeRandomDistributionInitialStates(int numRows, int numCols, List stateInfo, } package cellsociety.model.handlefiles; public abstract class MakeRandomStates { public MakeRandomStates(int numRows, int numCols, List stateInfo, String gameType, public List> getInitialStates() } package cellsociety.model.handlefiles; public class WriteCSV { public WriteCSV(GridModel grid, String language) public void saveCSVFile(String filePath) throws Exception } package cellsociety.model.handlefiles; public class ReadCSV { public ReadCSV(String filePath, String language) throws Exception public int[] getGridSize() public List> getGridInfo() } package cellsociety.model.handlefiles; public class ReadSimController { public ReadSimController(String filePath, String language) throws Exception public Map getRequiredSimMap() public Map getOptionalModelMap() public Map getOptionalViewMap() public int[] getGridSize() public List> getGridInfo() throws Exception } package cellsociety.model.handlefiles; public class WriteSim { public WriteSim(Map simMappings, Map optionalViewMappings, public void saveSimFile(String filePath, String fileComments) throws Exception } package cellsociety.model.handlefiles; public class ReadSim { public ReadSim(String filePath, String language) throws Exception public Map getRequiredSimMap() public Map getOptionalModelMap() public Map getOptionalViewMap() public Map getOptionalConfigMap() } package cellsociety.model.handlefiles; public class WriteSimController { public WriteSimController(SimulationView simulationView, GridModel gridModel, String language) public void saveSimulation(String filePath, String fileComments) throws Exception } package cellsociety.model.handlefiles; public class MakeProperties { public MakeProperties(String language) throws Exception public Properties setUpProperties(String filePath) throws Exception } package cellsociety.model.handlefiles; public class MakeRandomNumberInitialStates extends MakeRandomStates { public MakeRandomNumberInitialStates(int numRows, int numCols, List stateInfo, } package cellsociety.model.cell; public class SharkCellModel extends CellModel { public static final int SHARK = Integer.parseInt(SHARK_RESOURCES.getString("SharkState")); public static final String SHARK_STARTING_ENERGY = SHARK_RESOURCES.getString( public static final String SHARK_ENERGY_GAIN = SHARK_RESOURCES.getString("SharkEnergyGain"); public static final String SHARK_REPRODUCTION_TIME = SHARK_RESOURCES.getString( public SharkCellModel(int energy, int energyGain, int energyStart, int maxTimeToReproduce, public SharkCellModel(int state, String language, Map parameterMap) public CellModel getNextState(List neighbors) public boolean shouldMove(List neighbors) public CellModel leaveBehind() } package cellsociety.model.cell; public class DeadCellModel extends CellModel { public static final int DEAD = Integer.parseInt(DEAD_RESOURCES.getString("DeadState")); public DeadCellModel() public DeadCellModel(int state, String language, Map parameterMap) public CellModel getNextState(List neighbors) } package cellsociety.model.cell; public class OpenCellModel extends CellModel { public static final int OPEN = Integer.parseInt(OPEN_RESOURCES.getString("OpenState")); public static final int PERCOLATED = Integer.parseInt( public OpenCellModel() public OpenCellModel(int state, String language, Map parameterMap) public CellModel getNextState(List neighbors) } package cellsociety.model.cell; public class LiveCellModel extends CellModel { public static final int ALIVE = Integer.parseInt(LIVE_RESOURCES.getString("AliveState")); public LiveCellModel() public LiveCellModel(int state, String language, Map parameterMap) public CellModel getNextState(List neighbors) } package cellsociety.model.cell; public class FishCellModel extends CellModel { public static final String FISH_REPRODUCTION_TIME = FISH_RESOURCES.getString( public static final int FISH = Integer.parseInt(FISH_RESOURCES.getString("FishState")); public static final int WATER = Integer.parseInt(FISH_RESOURCES.getString("WaterState")); public FishCellModel(int maxTimeToReproduce, int myTimeToReproduce) public FishCellModel(int state, String language, Map parameterMap) public CellModel getNextState(List neighbors) public boolean shouldMove(List neighbors) public CellModel leaveBehind() } package cellsociety.model.cell; public class BurningCellModel extends CellModel { public static final int EMPTY = Integer.parseInt(BURNING_RESOURCES.getString("EmptyState")); public static final int BURNING = Integer.parseInt(BURNING_RESOURCES.getString("BurningState")); public BurningCellModel() public BurningCellModel(int state, String language, Map parameterMap) public CellModel getNextState(List neighbors) } package cellsociety.model.cell; public class TreeCellModel extends CellModel { public static final int TREE = Integer.parseInt(TREE_RESOURCES.getString("TreeState")); public static final String CATCH_PROBABILITY = TREE_RESOURCES.getString("ProbCatch"); public TreeCellModel(double probCatch) public TreeCellModel(int state, String language, Map parameterMap) public CellModel getNextState(List neighbors) } package cellsociety.model.cell; public abstract class CellModel { public CellModel(int state) public CellModel(int state, String language) public abstract CellModel getNextState(List neighbors); public int getState() public boolean shouldMove(List neighbors) public CellModel leaveBehind() } package cellsociety.model.cell; public class SchellingCellModel extends CellModel { public static final int VACANT = Integer.parseInt(SCHELLING_RESOURCES.getString("VacantState")); public static final String SATISFIED_LIMIT = SCHELLING_RESOURCES.getString("SatisfiedLimit"); public SchellingCellModel(int state, double satisfiedLimit) public SchellingCellModel(int state, String language, Map parameterMap) public CellModel getNextState(List neighbors) public boolean shouldMove(List neighbors) public CellModel leaveBehind() } package cellsociety.model.cell; public class ConstantCellModel extends CellModel { public ConstantCellModel(int state) public ConstantCellModel(int state, String language, Map parameterMap) public CellModel getNextState(List neighbors) } package cellsociety.model.edgePolicy; public class MirrorEdgeModel extends EdgePolicyModel { public MirrorEdgeModel(int rows, int columns) public List> applyEdgePolicy(List> locations) } package cellsociety.model.edgePolicy; public abstract class EdgePolicyModel { public EdgePolicyModel(int rows, int columns) public abstract List> applyEdgePolicy(List> locations); } package cellsociety.model.edgePolicy; public class TorusEdgeModel extends FiniteEdgeModel { public TorusEdgeModel(int rows, int columns) public List> applyEdgePolicy(List> locations) } package cellsociety.model.edgePolicy; public class FiniteEdgeModel extends EdgePolicyModel { public FiniteEdgeModel(int rows, int columns) public List> applyEdgePolicy(List> locations) } package cellsociety.model.neighborhood; public class CompleteNeighborhoodModel implements NeighborhoodModel { public CompleteNeighborhoodModel(ShapeModel shape) public List> getNeighborIndices(int row, int column) } package cellsociety.model.neighborhood; public interface NeighborhoodModel { } package cellsociety.model.neighborhood; public class TwoDownNeighborhoodModel implements NeighborhoodModel { public TwoDownNeighborhoodModel(ShapeModel shape) public List> getNeighborIndices(int row, int column) } package cellsociety.model.neighborhood; public class CardinalNeighborhoodModel implements NeighborhoodModel { public CardinalNeighborhoodModel(ShapeModel shape) public List> getNeighborIndices(int row, int column) } package cellsociety.model.grid; public abstract class GridModel { public GridModel(List> initialState, Map parameterMap, public void iterateParameters(BiConsumer consumer) public String getParameter(String parameter) public void setProperty(String keyName, String value) throws Exception public void setCellState(int row, int column, int state) throws Exception public void applyCellStates(BiConsumer consumer) public int getRows() public int getColumns() public void updateSimulation() } package cellsociety.model.grid; public class SchellingGridModel extends GridModel { public SchellingGridModel(List> initialState, Map parameterMap, } package cellsociety.model.grid; public class GameOfLifeGridModel extends GridModel { public GameOfLifeGridModel(List> initialState, Map parameterMap, } package cellsociety.model.grid; public class SpreadingFireGridModel extends GridModel { public SpreadingFireGridModel(List> initialState, } package cellsociety.model.grid; public class PercolationGridModel extends GridModel { public PercolationGridModel(List> initialState, Map parameterMap, } package cellsociety.model.grid; public class WaTorWorldGridModel extends GridModel { public WaTorWorldGridModel(List> initialState, Map parameterMap, } package cellsociety.view.simulation.visualization; public abstract class VisualizationView { public VisualizationView(Parent region, GridModel gridModel, Map fillMap) public Parent getRegion() public void setMyRegion(Parent region) public Map getColorMap() public GridModel getGridModel() public abstract void update(); public abstract void updateColors(); } package cellsociety.view.simulation.visualization; public class GridView extends VisualizationView { public GridView(GridModel gridModel, int[] gridSize, int width, public void updateColors() public void changeShape(String shape) public void update() } package cellsociety.view.simulation.visualization; public class ChangeView extends ChartView { public ChangeView(GridModel gridModel, int[] gridSize, int width, public void update() } package cellsociety.view.simulation.visualization; public class CellView { public CellView(int initialState, double width, double height, public Shape getMyShape() public int incrementState() public void updateColor() public int getMyColumn() public int getMyRow() } package cellsociety.view.simulation.visualization; public class PopulationView extends ChartView { public PopulationView(GridModel gridModel, int[] gridSize, int width, public void update() } package cellsociety.view.simulation.visualization; public abstract class ChartView extends VisualizationView { public ChartView(GridModel gridModel, int[] gridSize, int width, public abstract void update(); public void updateColors() } package cellsociety.view.simulation; public class FileControlView extends HBox { public FileControlView(ResourceBundle languageBundle, ResourceBundle dimensions, String language, } package cellsociety.view.simulation; public class SimulationView { public SimulationView(String language, String style, String filePath, Stage stage) public void addVisualization(VisualizationView view) public void step() public void updateColors() public void changeShape(String shape) public void loadSimulation(String language, String filePath) throws Exception public String getMyTitle() public String getSimulationType() public String getMyAuthor() public String getMyDescription() public String getColors() public Scene makeScene(int width, int height) } package cellsociety.view.simulation; public class RuleControlView extends VBox { public RuleControlView(ResourceBundle simulationStates, GridModel gridModel, } package cellsociety.view.simulation; public class ViewSelectorView extends HBox { public ViewSelectorView(GridModel gridModel, int[] gridDimensions, int width, int height, } package cellsociety.view.simulation; public class SimulationControlView extends VBox { public SimulationControlView(ResourceBundle languageBundle, ResourceBundle dimensionsBundle, public void setAnimationSpeedListener() public ColorPicker createColorButton(int state, Color color) public Map getColors() } package cellsociety.view.main; public class MainView { public static int SIMULATION_WIDTH = Integer.parseInt(myDimensions.getString("SimulationWidth")); public static int SIMULATION_HEIGHT = Integer.parseInt( public MainView(Stage stage, String language) public Scene makeScene(int width, int height) public static void showAlert(AlertType type, String message) }