package controller; public class PropertyChangeObservable { public void addObserver(String name, PropertyChangeListener l) public void notifyObserver(String name, Object o) } package controller.parser.csvparser; public abstract class CSVParser extends PropertyChangeObservable implements PropertyChangeListener { public CSVParser(String language, Map cellStateMap) public Grid loadFile(String fileString) throws Exception public void saveFile(PropertyChangeEvent evt) throws Exception public void propertyChange(PropertyChangeEvent evt) } package controller.parser.csvparser; public class LifeCSVParser extends CSVParser { public LifeCSVParser(String language, Map cellStateMap) } package controller.parser.csvparser; public class SchellingCSVParser extends CSVParser { public SchellingCSVParser(String language, Map cellStateMap) } package controller.parser.csvparser; public class WarToGameCSVParser extends CSVParser { public WarToGameCSVParser(String language, Map cellStateMap) } package controller.parser.csvparser; public class FireCSVParser extends CSVParser { public FireCSVParser(String language, Map cellStateMap) } package controller.parser.csvparser; public class PercolationCSVParser extends CSVParser { public PercolationCSVParser(String language, Map cellStateMap) } package controller.parser.simparser; public class FireSIMParser extends SIMParser { public FireSIMParser(String language) } package controller.parser.simparser; public class PercolationSIMParser extends SIMParser { public PercolationSIMParser(String language) } package controller.parser.simparser; public abstract class SIMParser extends PropertyChangeObservable implements PropertyChangeListener { public SIMParser(String language) public Map loadFile(String fileString) throws Exception public void checkValidFile(Map infoMap) throws Exception public void saveFile(Map infoMap) public void propertyChange(PropertyChangeEvent evt) } package controller.parser.simparser; public class LifeSIMParser extends SIMParser { public LifeSIMParser(String language) } package controller.parser.simparser; public class WarToGameSIMParser extends SIMParser { public WarToGameSIMParser(String language) } package controller.parser.simparser; public class SchellingSIMParser extends SIMParser { public SchellingSIMParser(String language) } package controller.gamecontroller; public abstract class GameController extends PropertyChangeObservable implements public GameController(String language, String mode, Stage stage) public void setNeighborhood(String neighborhood) public void setEdgePolicy(String edgePolicy) public void setInfoMap(Map infoMap) public void setCellStateToColorMap(Map cellStateToColorMap) public View getView() public Game getGame() public Map getCellIntToStateMap() public Map getCellStateToColorMap() public Map getInfoMap() public void reset() public void propertyChange(PropertyChangeEvent evt) } package controller.gamecontroller; public class SchellingGameController extends GameController { public SchellingGameController(String language, String mode, Stage stage) } package controller.gamecontroller; public class FireGameController extends GameController { public FireGameController(String language, String mode, Stage stage) } package controller.gamecontroller; public class LifeGameController extends GameController { public LifeGameController(String language, String mode, Stage stage) } package controller.gamecontroller; public class PercolationGameController extends GameController { public PercolationGameController(String language, String mode, Stage stage) } package controller.gamecontroller; public class WaTorGameController extends GameController { public WaTorGameController(String language, String mode, Stage stage) } package controller.appcontroller; public class AppCtrlController { public AppCtrlController(String language, Stage stage) public AppCtrlView getCtrlView() } public class Main extends Application { public void start(Stage stage) } package model.cells.animalCells; public class PredatorCell extends AnimalCell { public PredatorCell(CellState state) public PredatorCell(CellState state, int lifeTime) public void setLifeTime(int lifeTime) public int getLifeTime() public void incrementLifeTime(int length) public boolean isDying() public void updateOneTimeCycle() } package model.cells.animalCells; public class PreyCell extends AnimalCell { public PreyCell(CellState state) } package model.cells.animalCells; public class AnimalCell extends Cell { public AnimalCell(CellState state) public int getReproductionTime() public void updateOneTimeCycle() public void resetReproductionTime() } package model.cells; public class Cell { public Cell(CellState state) public CellState getState() public void setNextState(CellState nextState) public void updateToNextState() } package model; public class Grid { public Grid(int rows, int cols) throws IllegalArgumentException public GridIterator getGridIterator() public Grid getClone() public int getNumRows() public int getNumCols() public void findNeighborhoods(String neighborhoodType, String edgePolicy) public void updateAll() public void fillSpotWithCell(int id, Cell cell) public Spot getSpotByCoors(int row, int col) public Spot getSpotById(int id) public List getEmptySpots() } package model; public class GridIterator implements Iterator { public GridIterator(Grid grid) public boolean hasNext() public Spot next() } package model.findingNeighbors; public class SpotNeighborsFinder { public SpotNeighborsFinder(Grid grid, String neighborhoodType, String edgePolicy) public List findNeighbors(int[] currSpotCoor) } package model.findingNeighbors.neighborhoodMakers; public class HexagonalNeighborhoodMaker extends NeighborhoodMaker { public List makeNeighborsRelativeCoors() } package model.findingNeighbors.neighborhoodMakers; public class CompleteNeighborhoodMaker extends NeighborhoodMaker { public List makeNeighborsRelativeCoors() } package model.findingNeighbors.neighborhoodMakers; public class CardinalNeighborhoodMaker extends NeighborhoodMaker { public List makeNeighborsRelativeCoors() } package model.findingNeighbors.neighborhoodMakers; public abstract class NeighborhoodMaker { public abstract List makeNeighborsRelativeCoors(); } package model.findingNeighbors.edgePolicyExecutors; public abstract class EdgePolicyExecutor { public EdgePolicyExecutor(int numRows, int numCols) public boolean checkNeighborNotValid(int neighborRow, int neighborCol) public int[] getFixedNeighborCoors(int row, int col) } package model.findingNeighbors.edgePolicyExecutors; public class ThickEdgePolicyExecutor extends EdgePolicyExecutor { public ThickEdgePolicyExecutor(int numRows, int numCols) } package model.findingNeighbors.edgePolicyExecutors; public class FiniteEdgePolicyExecutor extends EdgePolicyExecutor { public FiniteEdgePolicyExecutor(int numRows, int numCols) } package model.findingNeighbors.edgePolicyExecutors; public class ToroidalEdgePolicyExecutor extends EdgePolicyExecutor { public ToroidalEdgePolicyExecutor(int numRows, int numCols) } package model.rules; public abstract class MovingGameRuleExecutor extends GameRuleExecutor { public MovingGameRuleExecutor(DataPacket data) public void makeNextState(Spot currSpot, Grid nextStateGrid) } package model.rules; public class NeighborsOfStateFinder { public int getNumNeighbors(List neighbors, CellState state) public List getNeighbors(List neighbors, CellState state) } package model.rules; public abstract class GameRuleExecutor { public abstract void makeNextState(Spot spot, Grid nextStateGrid); } package model.rules.nextSpotFinders; public class GroupCellNextSpotFinder extends CellNextSpotFinder { public GroupCellNextSpotFinder(double minFracSameAsSelf, CellState myType) public Spot findCellNextSpot(Spot currSpot, Grid nextStateGrid) } package model.rules.nextSpotFinders; public abstract class CellNextSpotFinder { public abstract Spot findCellNextSpot(Spot currSpot, Grid nextStateGrid); } package model.rules.nextSpotFinders; public class PreyCellNextSpotFinder extends AnimalCellNextSpotFinder { public PreyCellNextSpotFinder(int reproductionTime) public Spot findCellNextSpot(Spot currSpot, Grid nextStateGrid) } package model.rules.nextSpotFinders; public abstract class AnimalCellNextSpotFinder extends CellNextSpotFinder { public AnimalCellNextSpotFinder(int turnsToReproduce) } package model.rules.nextSpotFinders; public class PredatorCellNextSpotFinder extends AnimalCellNextSpotFinder { public PredatorCellNextSpotFinder(int reproductionTime, int maxEnergy, int preyEnergy) public Spot findCellNextSpot(Spot currSpot, Grid nextStateGrid) } package model.rules.gameRuleExecutors; public class WaTorGameRuleExecutor extends MovingGameRuleExecutor { public WaTorGameRuleExecutor(DataPacket data) } package model.rules.gameRuleExecutors; public class FireGameRuleExecutor extends StationaryGameRuleExecutor { public FireGameRuleExecutor(DataPacket data) } package model.rules.gameRuleExecutors; public class LifeGameRuleExecutor extends StationaryGameRuleExecutor { public LifeGameRuleExecutor(DataPacket data) } package model.rules.gameRuleExecutors; public class SchellingGameRuleExecutor extends MovingGameRuleExecutor { public SchellingGameRuleExecutor(DataPacket data) } package model.rules.gameRuleExecutors; public class PercolationGameRuleExecutor extends StationaryGameRuleExecutor { public PercolationGameRuleExecutor(DataPacket data) } package model.rules.nextStateFinders; public class GroundCellNextStateFinder extends CellNextStateFinder { public GroundCellNextStateFinder(double probTreeGen) public CellState findCellNextState(List neighbors) } package model.rules.nextStateFinders; public abstract class CellNextStateFinder { public abstract CellState findCellNextState(List neighbors); } package model.rules.nextStateFinders; public class BlockedCellNextStateFinder extends CellNextStateFinder { public BlockedCellNextStateFinder(double probOpens) public CellState findCellNextState(List neighbors) } package model.rules.nextStateFinders; public class OpenCellNextStateFinder extends CellNextStateFinder { public CellState findCellNextState(List neighbors) } package model.rules.nextStateFinders; public class FullCellNextStateFinder extends CellNextStateFinder { public CellState findCellNextState(List neighbors) } package model.rules.nextStateFinders; public class LiveCellNextStateFinder extends CellNextStateFinder { public CellState findCellNextState(List neighbors) } package model.rules.nextStateFinders; public class TreeCellNextStateFinder extends CellNextStateFinder { public TreeCellNextStateFinder(double probTreeCatchFire) public CellState findCellNextState(List neighbors) } package model.rules.nextStateFinders; public class BurningCellNextStateFinder extends CellNextStateFinder { public CellState findCellNextState(List neighbors) } package model.rules.nextStateFinders; public class DeadCellNextStateFinder extends CellNextStateFinder { public CellState findCellNextState(List neighbors) } package model.rules; public abstract class StationaryGameRuleExecutor extends GameRuleExecutor { public StationaryGameRuleExecutor(DataPacket data) public void makeNextState(Spot currSpot, Grid nextStateGrid) } package model.games; public class PercolationGame extends Game { public void setProbCellOpens(double probCellOpens) } package model.games; public abstract class Game extends PropertyChangeObservable implements PropertyChangeListener { public Game() public void initGrid(int rows, int cols) public void setGrid(Grid grid) public Grid getGrid() public List getValidCellStates() public void setNeighborhoodType(String neighborhoodType) public String getNeighborhoodType() public void setEdgePolicy(String edgePolicy) public String getEdgePolicy() public void checkValidSelections() throws Exception public void findGridNeighborhoods() public void makeNextState() public Grid getNextStateGrid() public void updateToNextState() public int getCountOfCellType(CellState type) public void propertyChange(PropertyChangeEvent evt) } package model.games; public class SchellingGame extends Game { public void setMinFracSameAsSelf(double minFracSameAsSelf) public void updateToNextState() } package model.games; public class FireGame extends Game { public void setProbTreeGen(double probTreeGen) public void setProbTreeCatchFire(double probTreeCatchFire) } package model.games.data; public class PercolationDataPacket implements DataPacket { public double getProbOpens() public void setData(double probOpens) } package model.games.data; public class SchellingDataPacket implements DataPacket { public double getMinFracSameAsSelf() public void setData(double minFracSameAsSelf) } package model.games.data; public class FireDataPacket implements DataPacket { public double getProbTreeGen() public double getProbTreeCatchFire() public void setData(double probTreeGen, double probTreeCatchFire) } package model.games.data; public class EmptyDataPacket implements DataPacket { } package model.games.data; public interface DataPacket { } package model.games.data; public class WaTorDataPacket implements DataPacket { public int getPreyTurnsToReproduce() public int getPredatorTurnsToReproduce() public int getPreyEnergy() public int getPredatorMaxEnergy() public void setData(int preyTurnsToReproduce, int predatorTurnsToReproduce, int predatorMaxEnergy, } package model.games; public class LifeGame extends Game { } package model.games; public class WaTorGame extends Game { public void makeNextState() public void updateToNextState() public void setMaxEnergyPredator(int predatorMaxEnergy) public void setPreyEnergy(int amtOfEnergy) public void setPreyReproductionTime(int reproductionTime) public void setPredatorReproductionTime(int reproductionTime) } package model; public class Spot { public Spot(int id, boolean isEdgeSpot) public CellState getCellState() public int getId() public Cell getCell() public void setCell(Cell cell) public boolean isEdgeSpot() public void setIsTopRow() public boolean isTopRow() public boolean hasCell() public List getNeighbors() public void setNeighbors(List neighbors) public void updateToNextState() } package view.resources; public class Config { public static final File DEFAULT_SAVE_FILE = new File(""); } package view; public class PercolationView extends View { public PercolationView(String language, Stage stage, Map cellStateToColorMap) } package view; public abstract class View extends PropertyChangeObservable implements PropertyChangeListener { public View(String language, Stage stage, Map cellStateToColorMap) public Rectangle[] getRectArr() public Grid getCurrGrid() public Map getCellColorMap() public void setSelectNeighborHoodString(String selectNeighborHoodString) public void setSelectEdgePolicyString(String selectNeighborHoodString) public void setCurrGrid(Grid currGrid) public ComboBox getSelectNeighborhood() public ComboBox getSelectEdgePolicy() public void setSavePath(File file) public boolean getAnimationStarted () public boolean getAnimationPaused () public Scene setupDisplay() public void showSaveSuccessDialog() public void saveFile() public void passSaveFileToController(Map saveFileMap) public void updateColorButtons() public void updateCellColorMap(CellState state, Color color) public void updateCellColor() public void showErrorDialog(String errorMessage) public void playSim() public void pauseSim() public void stepThroughSim() public void startAnimation() public void loadSIMFile() public void passFileToController(File file) public void setUpAboutPage(Map info) public void propertyChange(PropertyChangeEvent evt) } package view; public class SchellingView extends View { public SchellingView(String language, Stage stage, Map cellStateToColorMap) } package view; public class FireView extends View { public FireView(String language, Stage stage, Map cellStateToColorMap) } package view; public class AppCtrlView { // controller view with the buttons that allow user to start new games public AppCtrlView(Stage stage) public Scene setupDisplay() public void newAutomaton(String myCA, String myLang, String myMode) public void notEnoughInfo() public GameController getController() } package view; public class LifeView extends View { public LifeView(String language, Stage stage, Map cellStateToColorMap) public Node getColorButtons() } package view; public class WaTorView extends View { public WaTorView(String language, Stage stage, Map cellStateToColorMap) }