package CellSociety; public class CellSociety extends Application{ public void start (Stage stage) public void setAnimationTempo() public void layoutButtons () public void step() } package CellSociety; public class Graph { public Graph(int maxPopulation, double x, double y, Simulation sim) public void plotStep(Map point) public Group getView() } package CellSociety.grids; public class HexagonalGrid extends Grid { public HexagonalGrid(int gridRows, int gridCols,double gridSize, String neighborsTypes, String edgeTypes) public List getNeighborLocations(int row, int col, int distance, EnumParams.GridNeighborsTypes type) public String getType() return ShapeMaker.HEXAGONAL_GRID; } } package CellSociety.grids; public abstract class Grid { public Grid(int gridRows, int gridCols, double gridSize, String neighborsTypes, String edgeTypes) public Map getPopulations(Simulation simulation) public void fillGridRandomly(double fullProbability, Simulation simulation) public void fillGridFromArrayOfString(String initGrid,Simulation simulation) public abstract String getType(); public boolean isOuterBoundary(int row, int col) public List getEmptyLocations() public Actor getActor(int row, int col) public int getMaxPopulation() return myRows*myCols; } public List getAllActors() public void addActor(Actor actor, int row, int col) public void removeActor(Actor actor,int row, int col) public Rectangle getView() public abstract List getNeighborLocations(int row, int col, int distance, EnumParams.GridNeighborsTypes type); public List getNeighborLocations(int row, int col, int distance) public List getNeighborLocations(int row, int col) } package CellSociety.grids; public class TriangularGrid extends Grid { public TriangularGrid(int gridRows, int gridCols,double gridSize, String neighborsTypes, String edgeTypes) public List getNeighborLocations(int row, int col, int distance, EnumParams.GridNeighborsTypes type) public boolean determineDirection(int row, int col) public String getType() } package CellSociety.grids; public class RectangularGrid extends Grid { public RectangularGrid(int gridRows, int gridCols,double gridSize, String neighborsTypes, String edgeTypes) public List getNeighborLocations(int row, int col, int distance, EnumParams.GridNeighborsTypes type) public String getType() return ShapeMaker.RECTANGLE_GRID; } } package CellSociety; public class ShapeMaker { public static ShapeMaker getInstance() public Shape drawCell(int row, int col, double size, Paint color, Paint border, String type) public Shape drawPatchedAgent(int row, int col, double size, String type) public Rectangle makeRectangle(int row, int col, double size, Paint color, Paint border) public Polygon makeTriangle(int row, int col, double size, Paint color, Paint border) public Polygon makeHexagon(int row, int col, double size, Paint color, Paint border) } package CellSociety; public class XMLException extends RuntimeException { public XMLException (String message, Object ... values) public XMLException (Throwable cause, String message, Object ... values) public XMLException (Throwable cause) } package CellSociety.simulations; public abstract class Simulation { public Simulation(Map args) public double calculateCellSize(double screenSize, int row, int col, String type) public abstract String[] getActorNames(); public Grid createGrid() public abstract double[] getThresholdRange(); public void updateThreshold(double newThreshold) public double getThreshold() public Grid getMyGrid() return myGrid;} public boolean getIsOn() return isOn; } public void step(Group root) public void stopPressed() isOn = false; } public void startPressed() isOn = true; } public void resetPressed() public void addAllViews(Group root) public abstract Actor createActor(int row, int col); public abstract Actor createActor(int row, int col, int whichActor); } package CellSociety.simulations; public class GameOfLifeSimulation extends Simulation { public GameOfLifeSimulation(Map args) public String[] getActorNames() public double[] getThresholdRange() public void fillGrid() public Actor createActor(int row, int col) public Actor createActor(int row, int col, int whichActor) } package CellSociety.simulations; public class FireSimulation extends Simulation{ public FireSimulation(Map args) public double[] getThresholdRange() public void fillGrid() public Actor createActor(int row, int col) public String[] getActorNames() public Actor createActor(int row, int col, int whichActor) } package CellSociety.simulations; public class SegregationSimulation extends Simulation{ public SegregationSimulation(Map args) public String[] getActorNames() public double[] getThresholdRange() public void fillGrid() public Actor createActor(int row, int col) public Actor createActor(int row, int col,int whichActor) } package CellSociety.simulations; public class SugarScapeSimulation extends Simulation{ public SugarScapeSimulation(Map args) public String[] getActorNames() public double[] getThresholdRange() public void fillGrid() public Actor createActor(int row, int col) public Actor createActor(int row, int col, int whichActor) public SugarPatch createSugarPatch(int row, int col, int sugar) public Agent createAgent(int row, int col, SugarPatch patch) } package CellSociety.simulations; public class WatorWorldSimulation extends Simulation{ public WatorWorldSimulation(Map args) public String[] getActorNames() public double[] getThresholdRange() public void fillGrid() public Actor createActor(int row, int col) public Actor createActor(int row,int col, int whichActor) } package CellSociety.simulations; public class RockPaperScissorsSimulation extends Simulation{ public RockPaperScissorsSimulation(Map args) public String[] getActorNames() public double[] getThresholdRange() public void fillGrid() public Actor createActor(int row, int col) public Actor createActor(int row, int col, int whichActor) } package CellSociety.actors; public class Tree extends Actor { public Tree(double s, int r, int c, Grid grid, boolean isBurning, Simulation simulation,String burnColor, String aliveColor) public String getName() public boolean checkBurning() public void saveCurrentNeighborStates() public Paint getColor() public void act() } package CellSociety.actors; public class Shark extends Animal { public Shark(double s, int r, int c, Grid grid, Simulation simulation,String color) public String getName() public void saveCurrentNeighborStates() public void act() public Paint getColor() } package CellSociety.actors; public class SugarPatch extends Actor implements Comparable { public SugarPatch(double s, int r, int c, Grid grid, Simulation simulation, int maxSugar, int preset, int colorInterval) public int compareTo(Object obj) public boolean equals(Object obj) public int getAmountOfSugar() public boolean checkEmpty() public Agent getAgent() public int getDistance(int[] otherLocation) public void addAgent(Agent a) public void removeAgent() public void saveCurrentNeighborStates() public String getName() public Paint getColor() public void act() public int takeSugar() public void draw(String type, Group root) } package CellSociety.actors; public class Agent extends Actor { public Agent(double s, int r, int c, Grid grid, Simulation simulation, int visionDistance, int metabolism, int initialSugar, SugarPatch location) public String getName() public Paint getColor() public void saveCurrentNeighborStates() public void determineNextPatch() public void act() } package CellSociety.actors; public class Person extends Actor { public Person(double s, int r, int c, Grid grid, boolean isTypeA, Simulation simulation, String A_color, String B_color) public String getName() public Paint getColor() public boolean getIsTypeA() public void saveCurrentNeighborStates() public void act() } package CellSociety.actors; public class GameOfLifeActor extends Actor { public GameOfLifeActor(double s, int r, int c, Grid grid, boolean alive, Simulation simulation,String colorAlive, String colorDead) public String getName() public Paint getColor() public boolean checkAlive() public void saveCurrentNeighborStates() public void act() } package CellSociety.actors; public abstract class Actor { public Actor(double s, int r, int c, Grid grid, Simulation simulation) public abstract String getName(); public int[] getLocation() public void updateNeighbors() public void draw(String type, Group root) public abstract void saveCurrentNeighborStates(); public abstract void act(); public abstract Paint getColor(); } package CellSociety.actors; public class Fish extends Animal { public Fish(double s, int r, int c, Grid grid, Simulation simulation,String color) public String getName() public void saveCurrentNeighborStates() public void act() public Paint getColor() } package CellSociety.actors; public abstract class Animal extends Actor{ public Animal(double s, int r, int c, Grid grid, Simulation simulation, boolean edible) public void setEaten(boolean value) public boolean checkEaten() } package CellSociety.actors; public class RPS extends Actor{ public RPS(double s, int r, int c, Grid grid, Simulation simulation, int type,String rockColor, String paperColor, String scissorColor, String emptyColor) public void saveCurrentNeighborStates() public boolean canSpread() public int getRPS() public int getLevel() public void act() public String getName() public Paint getColor() } package CellSociety; public final class EnumParams { } package CellSociety; public class XMLErrorChecker { public XMLErrorChecker(Map mapInput) public void getDefaultValues(String data_path) public void checkSimulationName(String simType) public void checkGridShapes(String simType) public void checkGridEdges(String simType) public void checkInitTypes(String simType) public void checkGridNeighbor(String simType) public void checkGridOutlined(String simType) public void setMyActorParams(String simType) public void checkNullAllParams() public void checkNullParams(String[] s_arr) public void checkIntegerParams(String[] s_arr) public void checkDoubleParams(String[] s_arr) public void checkProbabilities(String[] s_arr) public void checkValidColor(String[] s_arr) public Map checkAll() } package CellSociety; public class XMLParser { public static final List DATA_FIELDS = List.of( public XMLParser (String type) public HashMap getGame(File dataFile) }