package cellsociety.config; public class ConfigurationException extends RuntimeException { public ConfigurationException(String message, Exception e) public ConfigurationException(String message) } package cellsociety.config; public class Control { public Control() public void makeSimulation(Stage primaryStage) } package cellsociety.config; public class Saving { public Saving() public void saveXmlFile(String xmlName, Cell[][] cellGrid, Config config) } package cellsociety.config; public class Config { public Config() public void loadXmlFile(File xmlFile) public String getEdgePolicy() public Map getParameters() public String getSimulationType() public int getWidth() public int getHeight() public String getLanguage() public char nextCellValue() public Iterator> getStateColorsIterator() public String getSimulationTitle() public String getAuthors() public String getDescription() } package cellsociety; public class Main extends Application { public void start(Stage primaryStage) } package cellsociety.model; public interface Simulation { Map parameters = new HashMap<>(); T createVariationCell(int row, int col, String state); void prepareCellNextState(T cell, List neighbors); default void setParameters(Map newParameters) { parameters.clear(); // Clear the current map parameters.putAll(newParameters); } package cellsociety.model.variations; public class GameOfLife implements Simulation { public BasicCell createVariationCell(int row, int col, String state) public void prepareCellNextState(BasicCell cell, List neighbors) } package cellsociety.model.variations; public class Percolation implements Simulation { public BasicCell createVariationCell(int row, int col, String state) public void prepareCellNextState(BasicCell cell, List neighbors) } package cellsociety.model.variations; public class WaTor implements Simulation { public WaTorCell createVariationCell(int row, int col, String state) public void prepareCellNextState(WaTorCell cell, List neighbors) } package cellsociety.model.variations; public class FallingSand implements Simulation { public SandCell createVariationCell(int row, int col, String state) public void prepareCellNextState(SandCell cell, List neighbors) } package cellsociety.model.variations; public class Schelling implements Simulation { public BasicCell createVariationCell(int row, int col, String state) public void prepareCellNextState(BasicCell cell, List neighbors) } package cellsociety.model.variations; public class ForagingAnts implements Simulation { public AntsCell createVariationCell(int row, int col, String state) public void prepareCellNextState(AntsCell cell, List neighbors) } package cellsociety.model.variations; public class SpreadingOfFire implements Simulation { public BasicCell createVariationCell(int row, int col, String state) public void prepareCellNextState(BasicCell cell, List neighbors) } package cellsociety.model; public class Grid { public Grid(Simulation simulation, Config config) public void computeNextGenerationGrid() public void computePreviousGenerationGrid() public int getCellRow() public int getCellCol() public T getCell() public Map getCellCounts() public void addCellToGrid(String state, int i, int j) } package cellsociety.model.edgepolicy; public interface EdgePolicy { List getNeighbors(int row, int col, T[][] cellGrid); } package cellsociety.model.edgepolicy; public abstract class AbstractEdgePolicy implements EdgePolicy { public List getNeighbors(int row, int col, T[][] grid) public boolean isInBounds(int newRow, int newCol, T[][] grid) public abstract boolean isValidNeighbor(int row, int col, int newRow, int newCol, T[][] grid); } package cellsociety.model.edgepolicy; public class NormalEdgePolicy extends AbstractEdgePolicy { public boolean isValidNeighbor(int row, int col, int newRow, int newCol, T[][] cellGrid) } package cellsociety.model.edgepolicy; public class VerticalEdgePolicy extends AbstractEdgePolicy { public boolean isValidNeighbor(int row, int col, int newRow, int newCol, T[][] cellGrid) } package cellsociety.model.celltypes.ants; public class Ant { public Ant() public boolean hasFood() public void returnHome(AntsCell antsCell, List neighbors, Iterator iterator) public void findFood(AntsCell antsCell, List neighbors, Iterator iterator) public void dropHomePheromone(AntsCell antsCell, List neighbors) public void dropFoodPheromone(AntsCell antsCell, List neighbors) public AntsCell selectLocation(List orientation) public AntsCell findMaxPheromoneCell(List neighbors, String type) public void ageAnt() public boolean isAlive() } package cellsociety.model.celltypes.ants; public class AntsCell extends Cell { public AntsCell(int row, int col, String state) public double getHomePheromone() public void setHomePheromone(double pheromoneLevel) public double getFoodPheromone() public void setFoodPheromone(double pheromoneLevel) public List getCurAnts() public void addAnt(Ant ant) public String updateCellState() public void birthAnts() public void antsForage(List neighbors) public void evaporateFoodPheromone(double rate) public void evaporateHomePheromone(double rate) public void diffuseFoodPheromone(double rate, List neighbors) public void diffuseHomePheromone(double rate, List neighbors) public void decrementFoodAmt() } package cellsociety.model.celltypes; public class SandCell extends Cell { public SandCell(int row, int col, String state) public boolean getStacked() public void setStacked(boolean stacked) } package cellsociety.model.celltypes; public class BasicCell extends Cell { public BasicCell(int row, int col, String state) } package cellsociety.model.celltypes; public class WaTorCell extends Cell { public WaTorCell(int row, int col, String state) public void become(String state) public boolean canReproduce(String type) public int getEnergy() public void setEnergy(int energy) public void eatFish(WaTorCell fishCell) public void decreaseEnergy() public boolean sharkStarve() public void increaseBreedTime() public void resetBreedTime() public void die() } package cellsociety.model; public abstract class Cell { public Cell(int row, int col, String state) public void applyNextState() public boolean isReadyForNextState() public void setReadyForNextState(boolean ready) public int getRow() public int getCol() public void setNextState(String state) public String getState() public void setState(String state) } package cellsociety.view; public class Display { public Display(Stage primaryStage, Grid grid, Config config) public void start() public static void showMessage(AlertType type, String message) } package cellsociety.view; public class Grapher { public Grapher(Stage stage) public void show() public void addData(Map dataPoint, int tick) public void close() public boolean isShowing() public int getTick() public void setTick(int tick) }