package applicationView; public class SimulationGraph { public LineChart createGraph () public void addToLegend (List myList) public void updateGraph (List myData) } package applicationView; public class SimulationToolbar { public SimulationToolbar () public void addSlider (Slider slider, String label) public VBox getRoot () } package applicationView; public class Toolbar { public Toolbar () public Button getPause () public void initToolbar (int height, int width) public Node getToolbar () public void removeToolbar (Group root) public double getSpeed () public void setPauseButton (EventHandler event) public void setStepButton (EventHandler event) public void setXMLFileButton (EventHandler event) } package cell; public class AgentCell extends Cell { public AgentCell (State currentState, Coordinate coordinate, double satisfied) public AgentCell (AgentCell cell, Coordinate coordinate) public boolean isSatisfied (double currentRatio) } package cell; public class AntCell extends Cell { public AntCell (Coordinate coordinate, int lifetime) public void update () public void willMove () public boolean isDeadOrMoving () public ForagingAntCell forage (List neighbors) public void doneMoving () public ForagingAntCell goHome (List neighbors) public ForagingAntCell getBestNeighbor (List neighbors, boolean food) public void setOrientation (Cell otherCell) public Coordinate getMyOrientation () public boolean hasFood () public void pickUpFood () public void dropFood () } package cell; public abstract class Cell { public Cell (State currentState, Coordinate coordinate) public Coordinate getMyGridCoordinate () public void setMyGridCoordinate (Coordinate gridCoordinate) public State getMyCurrentState () public void setMyCurrentState (State currentState) public State getMyNextState () public void setMyNextState (State nextState) public Color getColor () } package cell; public class EmptyCell extends Cell { public EmptyCell (Coordinate coordinate) public EmptyCell (Coordinate coordinate, State state) } package cell; public class FireCell extends Cell { public FireCell (State currentState, Coordinate coordinate) public void decrementBurnTimer () public int getBurnTimer () public void setBurnTimer (int burnTimer) } package cell; public class FishCell extends Cell { public FishCell (Coordinate coord, int breedTime) public FishCell (FishCell fish, Coordinate coord) public void update () public boolean canBreed () } package cell; public class ForagingAntCell extends Cell { public ForagingAntCell (State myState, public void update () public void addAnt (AntCell ant) public boolean fullOfAnts () public boolean foodFull () public boolean homeFull () public void addPheromones (List neighbors, boolean food) public void spawn (int antLifetime) public void diffuseAndEvaporate (List neighbors, public double getPheromones (boolean food) public List getAnts () public double getProb () public void setMaxPheromones (boolean food) public Color getColor () } package cell; public class GameOfLifeCell extends Cell { public GameOfLifeCell (State currentState, Coordinate coordinate) } package cell; public class SharkCell extends Cell { public SharkCell (Coordinate coordinate, int breedTime, int maxHealth) public SharkCell (SharkCell shark, Coordinate coordinate) public void eat (FishCell fish) public void update () public boolean canBreed () } package cell; public interface State { } package cell; public class SugarAgentCell extends Cell { public SugarAgentCell (State currentState, public SugarAgentCell (SugarAgentCell cell) public SugarPatchCell findSugar (List neighbors, int currentSugar) public void update () public boolean isDead () public int getVision () public void eat (SugarPatchCell cell) } package cell; public class SugarPatchCell extends Cell { public SugarPatchCell (State currentState, public void update () public int getSugar () public void growBack (int rate) public SugarAgentCell getAgent () public void killAgent () public void setSugar (int sugar) public boolean isEmpty () public void initAgent (SugarAgentCell agent) public boolean hasAgent () public void addAgent (SugarAgentCell agent) public Color getColor () } package controller; public class ApplicationController { public ApplicationController () public String getTitle () public Scene init (int width, int height) public void play () public void step () public void setSpeed () public void pause () public File getMyFile () public void openFile (File file) throws XMLException public SimulationController getSimulationController () public void handle (MouseEvent m) public void handle (MouseEvent m) public void handle (MouseEvent m) } package controller; public class SimulationController { public Simulation getSimulation () public void updateSimulations () } package exceptions; public class XMLException extends RuntimeException { public XMLException (String message, Object ... values) public XMLException (Throwable cause, String message, Object ... values) public XMLException (Throwable exception) } package grid; public class Coordinate { public Coordinate (double x, double y) public Coordinate add (Coordinate coordinate) public Coordinate subtract (Coordinate coordinate) public Coordinate scale (double scaleFactor) public boolean equals (Object obj) public int hashCode () public double getX () public double getY () public String toString () } package grid; public class CustomShape extends Polygon { } package grid; public class Grid implements Iterable { public Grid (int numberOfRows, int numberOfColumns, Map initCells) public Map getCellGrid () public Map getImmutableCellGrid () public Iterator iterator () public void applyFuncToCell (Consumer func) public void updateGrid () public Boolean isCreated (Coordinate coordinate) public Boolean isInGrid (Coordinate coordinate) public Cell getCell (Coordinate coordinate) public void addCell (Cell cell) public int getNumRows () public int getNumColumns () public void setCellGrid (Map cellGrid) } package grid; public abstract class GridView { public GridView (Dimension2D gridSize, Grid grid) public abstract void displayGrid (); public void updateView () public Group getRoot () public void configureShape (Shape shape, Coordinate key) public void addCellToRoot (Shape shape) } package grid; public class Hexagon extends Polygon { public Hexagon (double height, double gridWidth, int numberOfColumns) public double getStretchedWidth () public double getStretchedEffectiveWidth () public double getEffectiveWidth () } package grid; public class HexagonGridView extends GridView { public HexagonGridView (Dimension2D gridSize, Grid grid) public void displayGrid () } package grid; public abstract class NeighborsHandler { public List getVisionNeighbors (Coordinate coordinate, int visionDistance) public List getDirectionNeighbors (Coordinate coordinate, public List getSurroundingNeighbors (Coordinate coordinate) public List getOrthogonalNeighbors (Coordinate coordinate) public List getAdjacentNeighbors (Coordinate coordinate, public List getNeighbors (List allowableNeighbors, public abstract Coordinate handleEdgeCoordinate (Coordinate coordinate, public Grid getMyGrid () public void setMyGrid (Grid grid) } package grid; public class NormalEdgeNeighborsHandler extends NeighborsHandler { public NormalEdgeNeighborsHandler (String myCellShape, Grid grid) public Coordinate handleEdgeCoordinate (Coordinate coordinate, } package grid; public class RectangleGridView extends GridView { public RectangleGridView (Dimension2D gridSize, Grid grid) public void displayGrid () } package grid; public class ToroidalEdgeNeighborsHandler extends NeighborsHandler { public ToroidalEdgeNeighborsHandler (String myCellShape, Grid grid) public double wrapCoordinate (double value, int bound) public Coordinate handleEdgeCoordinate (Coordinate coordinate, } package grid; public class Triangle extends Polygon { public void flipTriangle () public double getStretchedWidth () public double getStretchedEffectiveWidth () public double getRadius () } package grid; public class TriangleGridView extends GridView { public TriangleGridView (Dimension2D gridSize, Grid grid) public void displayGrid () } package main; public class Main extends Application { public void start (Stage s) } package simulation; public class FireSimulation extends Simulation { public FireSimulation (Map> simulationConfig) public void step () public boolean hasBurningNeighbor (Cell cell) public List countCellsinGrid () public void setNextState (Cell cell) public void initializeSimulationDetails (Map simulationConfig) public Cell createCell (Coordinate coordinate, State currentState) public void initializeSimulationToolbar (SimulationToolbar toolbar) public Color getColor () public double getProbability () public void setProbability (double probability) public State[] getSimulationStates () public State getSimulationState (String simulationState) public void getSimulationNames () } package simulation; public class ForagingAntsSimulation extends Simulation { public ForagingAntsSimulation (Map> simulationConfig) public void step () public void initializeSimulationDetails (Map simulationConfig) public Cell createCell (Coordinate coordinate, State currentState) public List countCellsinGrid () public void initializeSimulationToolbar (SimulationToolbar toolbar) public State[] getSimulationStates () public void getSimulationNames () public State getSimulationState (String simulationState) public Color getColor () public double getProbability () public void setProbability (double probability) } package simulation; public class GameOfLifeSimulation extends Simulation { public GameOfLifeSimulation (Map> simulationConfig) public void step () public void getSimulationNames () public void setNextState (Cell cell) public void initializeSimulationDetails (Map simulationConfig) public List countCellsinGrid () public void initializeSimulationToolbar (SimulationToolbar toolbar) public Color getColor () public double getProbability () public void setProbability (double probability) public Cell createCell (Coordinate coordinate, State currentState) public State[] getSimulationStates () public State getSimulationState (String simulationState) } package simulation; public class PredatorPreySimulation extends Simulation { public PredatorPreySimulation (Map> simulationConfig) public void step () public void kill (Cell cell) public void initializeSimulationDetails (Map simulationConfig) public Cell createCell (Coordinate coordinate, State currentState) public List countCellsinGrid () public void initializeSimulationToolbar (SimulationToolbar toolbar) public State[] getSimulationStates () public void getSimulationNames () public State getSimulationState (String simulationState) public Color getColor () public double getProbability () public void setProbability (double probability) } package simulation; public class SegregationSimulation extends Simulation { public SegregationSimulation (Map> simulationConfig) public void step () public void getSimulationNames () public void initializeSimulationDetails (Map simulationConfig) public Cell createCell (Coordinate coordinate, State currentState) public List countCellsinGrid () public void initializeSimulationToolbar (SimulationToolbar toolbar) public State[] getSimulationStates () public State getSimulationState (String simulationState) public Color getColor () public double getProbability () public void setProbability (double probability) } package simulation; public abstract class Simulation { public Simulation (Map> simulationConfig) public int getStepNum () public abstract List countCellsinGrid (); public Grid getGrid () public void setGrid (Grid grid) public String getCellShape () public void setCellShape (String cellShape) public abstract void step (); public void initializeSimulation (Map> simulationConfig) public void initializeGrid (Map> simulationConfig) public void populateGridWithSpecificValues (Map cells) public State getDefaultState () public abstract void initializeSimulationDetails (Map simulationConfig); public abstract Cell createCell (Coordinate coordinate, State currentState); public abstract void initializeSimulationToolbar (SimulationToolbar toolbar); public BorderPane getSimulationView () public GridView getGridView () public void setGridView (GridView gridView) public void updateGrid () public NeighborsHandler getNeighborsHandler () public void setNeighborsHandler (NeighborsHandler neighbors) public List getSquareNeighbors (Cell cell) public void generateMap () public void handleCellShape (String cellShape) public void handleEdgeType (String edgeType) public abstract State[] getSimulationStates (); public abstract State getSimulationState (String simulationState); public void handleMapGeneration (Map generalConfig) public Dimension2D getGridSize () public void setGridSize (Dimension2D myGridSize) public String getEdgeType () public void setEdgeType (String edgeType) public String getNeighborsToConsider () public void setNeighborsToConsider (String neighborsToConsider) public SimulationGraph getGraphView () public Node getSimulationToolbar () public abstract void getSimulationNames (); } package simulation; public class SugarSimulation extends Simulation { public SugarSimulation (Map> simulationConfig) public List countCellsinGrid () public void getSimulationNames () public void step () public void initializeSimulationDetails (Map simulationConfig) public Cell createCell (Coordinate coordinate, State currentState) public void initializeSimulationToolbar (SimulationToolbar toolbar) public State[] getSimulationStates () public State getSimulationState (String simulationState) public Color getColor () public double getProbability () public void setProbability (double probability) } package xml; public class XMLParser { public Simulation createSimulation (Element rootElement) throws XMLParserException public void printMap (Map input) public NodeList getChildNodesOfTag (String tagName, Element rootElement) public Element getRootElement (String xmlFilename) } package xml; public class XMLParserException extends RuntimeException { public XMLParserException (String message, Object ... values) public XMLParserException (Throwable cause, String message, Object ... values) public XMLParserException (Throwable cause) }