package backend; public abstract class Cell { public Cell(Interact rules, Image im, String col, double startX, double startY) public Cell(Interact rules, double startRow, double startCol) public Cell(Interact rules, String color, double startRow, double startCol) public Cell(Interact rules, Image im, double startRow, double startCol) public Cell(Interact rules, Coordinate c) public Cell(Interact rules, Coordinate c, String color) public void setColors() public double getX() public double getY() public Color getDisplayColor() public Interact getInteractionRules() public Coordinate getLocation() public Map getString2Color() } package backend; public class Coordinate implements Comparable { public Coordinate(double x, double y) public double getX() public double getY() public boolean equals(Coordinate o) public String toString() public int compareTo(Object arg0) } package backend; public class FireCell extends Cell { public FireCell(Interact rules, double startX, double startY) public FireCell(Interact rules, Coordinate c) public void incrementBurningNeighborCount() public boolean getState() public String toString() public void setState(boolean t) public int getBurningNeighborCount() } package backend; public class FireSimulation extends Simulation { public FireSimulation(int rows, int cols, List cells) public void allCellsMove() public void emptyCellsIterate() } package backend; public class FishCell extends Cell { public FishCell(Interact rules, double startRow, double startCol) public FishCell(Interact rules, Coordinate c) public String toString() // public void removeFromNullNeighbors(Coordinate coordinate) } package backend; public class GameOfLifeSimulation extends Simulation { public GameOfLifeSimulation(int rows, int cols, List cells) public GameOfLifeSimulation(int rows, int cols, List cells, String GridType) public void emptyCellsIterate() } package backend; public class GOLCell extends Cell { public GOLCell(Interact rules, double startX, double startY) public GOLCell(Interact rules, Coordinate c) public void react() public void incrementNeighboringLiveCells() } package backend; public class IllegalCoordinateException extends RuntimeException { public IllegalCoordinateException(double x, double y) } package backend; public class RPSCell extends Cell{ public RPSCell(RPSInteraction rules, Coordinate c, int grad, String startcolor) public RPSCell(RPSInteraction rules, Coordinate c, String startcolor) public RPSCell(RPSInteraction rules, Coordinate c, String startcolor, int grad) public RPSCell(RPSInteraction rules, double x, double y, int grad, String startcolor) public void setDecrement(boolean t) public void setIncrement(boolean t) public String toString() public String getColor() } package backend; public class RPSSimulation extends Simulation{ public RPSSimulation(int rows, int cols, List cells) public void emptyCellsIterate() } package backend; public class SegregationCell extends Cell { public SegregationCell(SegregationInteraction rules, Coordinate c) public SegregationCell(SegregationInteraction rules, double x, double y) public void setAllCoordinates(Set allSet) public void incrementMap(SegregationCell c) public String getTypeString() } package backend; public class SegregationSimulation extends Simulation { public SegregationSimulation(int rows, int cols, List cells) public SegregationSimulation(int rows, int cols, List cells, String GridType) public void allCellsIterate() public void emptyCellsIterate() } package backend; public class SharkCell extends Cell { public SharkCell(Interact rules, double startRow, double startCol) public SharkCell(Interact rules, Coordinate c) public void addFishNeighbor(FishCell fish) public String toString() } package backend; public abstract class Simulation { public Simulation(int rows, int cols, List cells) public Simulation(int rows, int cols, List cells, String GridType) public Map getCellsAtLocations() public Coordinate getCoordinate(double x, double y) public boolean isValidCoordinate(double x, double y) public Cell getCellAt(double x, double y) public Cell getCellAt(Coordinate c) public Map getNeighborsMap(Coordinate c) public Double[][] getNeighboringCoordinates(double x, double y) public void makeGraph (int width, int height) public void makeToroidal (int width, int height) public void update() public void allCellsIterate() public void allCellsMove() public abstract void emptyCellsIterate(); } package backend; public class SugarCell extends Cell{ public SugarCell(Interact rules, Coordinate c, int visionNum, int metabolismNum, int startSugarLevel) public SugarCell(Interact rules, double startX, double startY, int visionNum, int metabolismNum, int startSugarLevel) public Map getNeighborPatches(Map patches) public int getVision() public Map> getSurroundingPatches() public String toString() public void addToSurroundingPatches(int i, Coordinate c) } package backend; public class SugarPatch extends Cell{ public SugarPatch(Interact rules, Coordinate c, int growBackRate, int max, int growBackInterval) public SugarPatch(Interact rules, double startX, double startY, int growBackRate, int max, int growBackInterval) public void growBackSugar() public void incrementInterval() public boolean survivedEqualsGrowBack() public int getSugarLevel() public int getMaxSugar() public void resetSugar() public String toString() } package backend; public class SugarSimulation extends Simulation { public SugarSimulation(int rows, int cols, List cells, List sugarPatchesList) public SugarPatch getPatchAt(double x, double y) public void update() public void allCellsIterate() public void agentCellsUpdate() public void emptyCellsIterate() public Map getSugarPatches() } package backend; public class TypeA extends SegregationCell { public TypeA(SegregationInteraction rules, Coordinate c) public TypeA(SegregationInteraction rules, double x, double y) } package backend; public class TypeB extends SegregationCell { public TypeB(SegregationInteraction rules, Coordinate c) public TypeB(SegregationInteraction rules, double x, double y) } package backend; public class WatorSimulation extends Simulation { public WatorSimulation(int rows, int cols, List cells) public WatorSimulation(int rows, int cols, List cells, String GridType) public void emptyCellsIterate() public void allCellsMove() } package frontend.controllers; public class FireController extends SimulationController{ public FireController(FireSimulation sim, SimulationScene display) } package frontend.controllers; public class LifeController extends SimulationController { public LifeController(GameOfLifeSimulation sim, SimulationScene display) } package frontend.controllers; public class RPSController extends SimulationController { public RPSController(RPSSimulation sim, SimulationScene display) } package frontend.controllers; public class SegregationController extends SimulationController { public SegregationController(SegregationSimulation sim, SimulationScene display) } package frontend.controllers; public abstract class SimulationController { public SimulationController(Simulation sim, SimulationScene display) public Simulation getSimulation() return sim;} public Scene getView() return simScene;} public SimulationControls getControls() return controls;} } package frontend.controllers; public class SugarController extends SimulationController{ public SugarController(Simulation sim, SimulationScene display) } package frontend.controllers; public class WatorController extends SimulationController { public WatorController(WatorSimulation sim, SimulationScene display) } package frontend.controls; public class FireControls extends SimulationControls{ public FireControls() public Slider getProbCatch() return probCatch;} public Slider getProbGrow() return probGrow;} public Slider getProbStrike() return probStrike;} } package frontend.controls; public class LifeControls extends SimulationControls{ public LifeControls()super();} } package frontend.controls; public class RPSControls extends SimulationControls { } package frontend.controls; public class SegregationControls extends SimulationControls { public SegregationControls() public Slider getSimilar() return similar;} } package frontend.controls; public class SimulationControls extends HBox { public SimulationControls() public ToggleButton getPause() return pause;} public Button getSave() return save;} public Button getStep() return step;} public Button getBack() return back;} } package frontend.controls; public class SugarControls extends SimulationControls{ } package frontend.controls; public class WatorControls extends SimulationControls { public WatorControls() public Slider getFishReproduction() return fishReproduction;} public Slider getSharkEnergy() return sharkEnergy;} public Slider getSharkReproduction() return sharkReproduction;} } package frontend.utilities; public class ControllerMaker { public SimulationController makeController(String type, SimulationScene simScene, String type2) } package frontend.utilities; public class HBoxButton extends HBox { public HBoxButton(String buttonText) public Button getButton() } package frontend.utilities; public class SceneController { public void addScene(String name, Scene scene) public void removeScene(String name) public void activate(String name) } package frontend.utilities; public class SimulationAnimator { public SimulationAnimator(Simulation sim) this.sim = sim;} public void animate() public void step(double elapsedTime) public BooleanProperty pausedProperty() return paused;} public BooleanProperty steppedProperty() return stepped;} } package frontend.utilities; public class SimulationGenerator { public Simulation generate(String simType) } package frontend.utilities; public class SimulationSnapshot { public SimulationSnapshot() public void snapshot(Simulation sim) } package frontend.utilities; public class SimulationStageMaker { public Stage make() public Stage getPrimaryStage() } package frontend.utilities; public class SimulationUIMaker { public SimulationControls makeControls(String type) } package frontend.views; public class MenuMaker { public MenuMaker(Stage s) public Scene createMenu() public Simulation getSimulation()return simulation;} public String getSimulationType()return type;} public BooleanProperty buttonPressedProperty()return buttonPressed;} } package frontend.views; public class SimulationDisplayer extends Group { public SimulationDisplayer() public void displayCells(Simulation displaySim) public BooleanProperty simulationSetProperty() return simulationSet;} } package frontend.views; public class SimulationScene extends Scene{ public SimulationScene(Parent root, double width, double height) public SimulationDisplayer getSimDisplay() public SimulationControls getControls() return controls;} public void setControls(SimulationControls c) this.controls = c;parentRoot.getChildren().add(controls);} } package rules; public class FireInteraction extends Interact { public FireInteraction(double probFire, double probIgnite) public void interact(Cell a, Cell b) public void interact(FireCell a, FireCell b) public double getProbCatch() public double getProbLightning() public void updateProbCatch(double newNum) public void updateProbStrike(double newNum) } package rules; public class GameOfLifeInteraction extends Interact { public GameOfLifeInteraction() public void interact(GOLCell a, GOLCell b) public void interact(Cell a, Cell b) } package rules; public abstract class Interact { public void interact(Cell a, Cell b) } package rules; public class RPSInteraction extends Interact { public RPSInteraction() public void interact(Cell a, Cell b) public void redInteract(Cell a, Cell b) public void greenInteract(Cell a, Cell b) public void blueInteract(Cell a, Cell b) public String newColor(RPSCell a) } package rules; public class SegregationInteraction extends Interact { public SegregationInteraction(double satisfiedPerc) public void interact(SegregationCell t, SegregationCell other) public double getSatisfiedPercentage() public void interact(Cell a, Cell b) public void changeSimilar(double newNum) } package rules; public class SugarInteraction extends Interact{ public SugarInteraction() public void interact(Cell a, Cell b) public void interact(SugarCell a, SugarPatch b) } package rules; public class UndefinedInteractionException extends RuntimeException { public UndefinedInteractionException(Cell a, Cell b) } package rules; public class WatorInteraction extends Interact { public WatorInteraction(int fish, int shark, int startEnergy) public void interact(Cell a, Cell b) public void interact(SharkCell shark, SharkCell shark2) } public void interact(SharkCell shark, FishCell fish) public void interact(FishCell fish, FishCell fish2) } public void interact(FishCell fish, SharkCell shark) } public int getFishReproductionNum() public int getSharkReproductionNum() public int getSharkEnergy() public void changeSharkEnergy(int newNum) public void changeFishReproduction(int newNum) public void changeSharkReproduction(int newNum) } public class SimulationApp extends Application{ public void start(Stage primaryStage) throws Exception } package xmlparse; public class FireInfo extends SimInfo { // public FireInfo(int width, int height, String[][] config, int prob_catch, int public FireInfo(int width, int height, Map config, double prob_catch, double prob_strike, public String getType() public double getCatchProb() public double getStrikeProb() public double getGrowProb() } package xmlparse; public class FireRandomizer extends XMLRandomizer { public FireRandomizer(double catchRate, double strikeRate) public void randomConfig(int width, int height) } package xmlparse; public class LifeInfo extends SimInfo { public LifeInfo(int width, int height, Map config) public String getType() } package xmlparse; public class LifeRandomizer extends XMLRandomizer { public LifeRandomizer() public void randomConfig(int width, int height) } package xmlparse; public class RPSInfo extends SimInfo { public RPSInfo(int width, int height, Map config) public String getType() } package xmlparse; public class RPSRandomizer extends XMLRandomizer { public RPSRandomizer() public void randomConfig(int width, int height) } package xmlparse; public class SegInfo extends SimInfo { // public SegInfo(int width, int height, String[][] config, int sim) public SegInfo(int width, int height, Map config, double sim) public String getType() public double getSimilar() } package xmlparse; public class SegRandomizer extends XMLRandomizer { public SegRandomizer(double satisfied) public void randomConfig(int width, int height) } package xmlparse; public abstract class SimInfo { // public SimInfo(int width, int height, String[][] config) public SimInfo(int width, int height, Map config) public abstract String getType(); // public String[][] getConfig() public Map getConfig() public int getWidth() public int getHeight() } package xmlparse; public class SugarInfo extends SimInfo { public SugarInfo(int width, int height, Map config, Map patches, int vis, public String getType() public Map getPatches() public int getVision() public int getMetabolism() public int getSugar() public int getGrowRate() public int getGrowTicks() } package xmlparse; public class SugarRandomizer extends XMLRandomizer { public SugarRandomizer(int vision, int metabolism, int sugar, int growRate, int growTicks, int maxSugar) public void randomConfig(int width, int height) public int procedurateMax(Coordinate c) } package xmlparse; public class WatorInfo extends SimInfo { // public WatorInfo(int width, int height, String[][] config, int f_rep, int public WatorInfo(int width, int height, Map config, int f_rep, int s_rep, int s_en) public String getType() public int getFishRate() public int getSharkRate() public int getSharkEnergy() } package xmlparse; public class WatorRandomizer extends XMLRandomizer { public WatorRandomizer(int fRate, int sRate, int sEn) public void randomConfig(int width, int height) } package xmlparse; public class XMLBuild { public XMLBuild() public void buildFile(SimInfo initial_info, String fileName) } package xmlparse; public class XMLParse { public XMLParse() public SimInfo parseFile(String fileName) } package xmlparse; public abstract class XMLRandomizer { public XMLRandomizer(String type) public abstract void randomConfig(int width, int height); public String getType() }