package cellsociety.models.societies; public class SpreadingOfFireSociety extends Society { public SpreadingOfFireSociety() protected void handleNeighborCalculation(Neighborhood neighborhood, ImmutableCellModel currCell, CellModel nextCell, CellList nextList, CellIndex currInd) public void setParameter(double paramter) } package cellsociety.models.societies; public abstract class Society { protected List myStates protected static final ResourceBundle stateValues public CellList updateCellList() protected void setNextCellStates(int numRows, int numColumns, CellList nextList) protected abstract void handleNeighborCalculation(Neighborhood neighborhood, ImmutableCellModel currCell, CellModel nextCell, CellList nextList, CellIndex currInd); protected CellList initializeNextList() protected int getNumActiveNeighbors(Neighborhood neighborhood, ImmutableCellState state) public void setMyCellList(ImmutableCellList cellList) public void setMyAdjacencyInitializer(Initializer initializer) public List getMyStates() public void setParameter(double parameterInput) protected static ResourceBundle getStateValues() } package cellsociety.models.societies; public class GameOfLifeSociety extends Society { public GameOfLifeSociety() protected void handleNeighborCalculation(Neighborhood neighborhood, ImmutableCellModel currCell, CellModel nextCell, CellList nextList, CellIndex currInd) } package cellsociety.models.societies; public class RockPaperScissors extends Society{ public RockPaperScissors() protected void handleNeighborCalculation(Neighborhood neighborhood, ImmutableCellModel currCell, CellModel nextCell, CellList nextList, CellIndex currInd) } package cellsociety.models.societies; public class SchellingsSociety extends Society { public SchellingsSociety() public void setParameter(double parameterInput) protected void handleNeighborCalculation(Neighborhood neighborhood, ImmutableCellModel currCell, CellModel nextCell, CellList nextList, CellIndex currInd) } package cellsociety.models.societies; public class WaTorSociety extends Society { public WaTorSociety(int seed) public WaTorSociety() protected void handleNeighborCalculation(Neighborhood neighborhood, ImmutableCellModel currCell, CellModel nextCell, CellList nextList, CellIndex currInd) public int getAdjacencyType() protected CellList initializeNextList() } package cellsociety.models.societies; public class PercolationSociety extends Society { public PercolationSociety() public void setMyCellList(ImmutableCellList cellList) public CellList updateCellList() protected void handleNeighborCalculation(Neighborhood neighborhood, ImmutableCellModel currCell, CellModel nextCell, CellList nextList, CellIndex currInd) } package cellsociety.models.parsers; public class DataParser { public Grid readCSVFile(File file) throws IOException, CsvException } package cellsociety.models.parsers.sim; public class SimParserSchelling extends SimParserBasic{ public String getParameter() } package cellsociety.models.parsers.sim; public class SimParserRockScissors extends SimParserBasic{ public String getRockColor() public String getPaperColor() public String getScissorsColor() } package cellsociety.models.parsers.sim; public class SimParserBasic extends Parser{ public void readSimFile(File simFile) throws IllegalAccessException, IOException public String getType() public String getTitle() public String getAuthor() public String getDescription() public String getInitialStates() public String getParameter() } package cellsociety.models.parsers.sim; public abstract class Parser { public abstract void readSimFile(File simFile) throws IllegalAccessException, IOException; public abstract String getType(); public abstract String getAuthor(); public abstract String getDescription(); public abstract String getTitle(); public abstract String getInitialStates(); public abstract String getParameter(); } package cellsociety.models.parsers.sim; public class SimParserFire extends SimParserBasic{ public String getParameter() } package cellsociety.models.adjacency; public abstract class Initializer { public Neighborhood getNeighborhood(CellIndex neighborhoodNum) protected void makeCells(Grid grid) throws NumberFormatException protected void addNeighbor(int x, int y, int rows, int columns, int xCoord, int yCoord) protected abstract void addNeighbors(int x, int y, int rows, int columns); } package cellsociety.models.adjacency; public class AdjacenyList { public AdjacenyList() public void addNeighbor(CellIndex cellIndex, Neighbor newNeighbor) public int getNumberOfNeighbors(int cellIndex) public int getSize() public Neighborhood getNeighborhood(CellIndex cellIndex) } package cellsociety.models.adjacency; public class AdjacencyListInitializer extends Initializer{ public AdjacencyListInitializer(Grid grid) public void addNeighbors(int x, int y, int rows, int columns) public Neighborhood getNeighborhood(CellIndex neighborhoodNum) } package cellsociety.models.adjacency; public class FireAdjacencyListInitializer extends Initializer{ public FireAdjacencyListInitializer(Grid grid) public void addNeighbors(int x, int y, int rows, int columns) public Neighborhood getNeighborhood(CellIndex neighborhoodNum) } package cellsociety.models.adjacency.neighbors; public class Neighborhood { public Neighborhood() public void addNeighbor(Neighbor neighbor) public Neighbor getNeighbor(CellIndex index) public int size() } package cellsociety.models.adjacency.neighbors; public record Neighbor (CellIndex index){ public CellIndex getIndex() } package cellsociety.models.cell.list; public interface ImmutableCellList { ImmutableCellModel getCell(CellIndex cellIndex); int getMyColumns(); int getMyRows(); int size(); } package cellsociety.models.cell.list; public class CellList implements ImmutableCellList { public CellList() public void addCell(CellModel cell) public CellModel getCell(CellIndex cellIndex) public void setCell(CellIndex cellIndex, CellModel cm) public void setDimensions(int rows, int columns) public int getMyRows() public int getMyColumns() public int size() } package cellsociety.models.cell.list; public class WaTorCellListInitializer extends CellListInitializer{ public WaTorCellListInitializer(Grid grid) public WaTorCellListInitializer(CellState state, int size) protected void makeCells(Grid grid) protected void initializeListToState(CellState state, int size) } package cellsociety.models.cell.list; public class CellListInitializer { public CellListInitializer(Grid grid) public CellListInitializer(CellState state, int size) public CellListInitializer(int size) protected void initializeListToState(CellState state, int size) protected void makeCells(Grid grid) public CellList getCellList() } package cellsociety.models.cell.data; public class WaTorCellData { //DATACLASS for WA-TOR-WORLD simulation public WaTorCellData() public WaTorCellData(WaTorCellData old) public WaTorCellData(int aliveTime, int energy) public int getAliveTime() public void setAliveTime(int aliveTime) public int getEnergy() public void setEnergy(int energy) } package cellsociety.models.cell.data.cellmodel.wator; public class SharkCellModel extends WaTorCellModel { public SharkCellModel(CellState s) public SharkCellModel(CellState s, WaTorCellData cellData) public void handle(Neighborhood cellNeighborhood, CellList currentCellList, CellList nextList, CellIndex currentIndex, Random rng) public boolean isEmpty() } package cellsociety.models.cell.data.cellmodel.wator; public class EmptyCellModel extends WaTorCellModel { public EmptyCellModel(CellState s) public EmptyCellModel(CellState s, WaTorCellData cellData) public WaTorCellData getData() public void handle(Neighborhood cellNeighborhood, CellList currentCellList, CellList nextList, CellIndex currentIndex, Random rng) public boolean isEmpty() } package cellsociety.models.cell.data.cellmodel.wator; public class FishCellModel extends WaTorCellModel { public FishCellModel(CellState s) public FishCellModel(CellState s, WaTorCellData cellData) public WaTorCellData getData() public void handle(Neighborhood cellNeighborhood, CellList currentCellList, CellList nextList, CellIndex currentIndex, Random rng) public boolean isEmpty() } package cellsociety.models.cell.data.cellmodel.wator; public abstract class WaTorCellModel extends CellModel { public WaTorCellModel(CellState s) public WaTorCellModel(CellState s, WaTorCellData cellData) public WaTorCellData getData() public abstract void handle(Neighborhood cellNeighborhood, CellList currentCellList, CellList nextList, CellIndex currentIndex, Random rng); public abstract boolean isEmpty(); protected List getNeighborIndicesOfState(Neighborhood cellNeighborhood, CellState cellState, CellList currentCellList, CellList nextList) } package cellsociety.models.cell.data.cellmodel; public interface ImmutableCellModel { ImmutableCellState getState(); String toString(); boolean equals(Object o); } package cellsociety.models.cell.data.cellmodel; public class CellModel implements ImmutableCellModel{ public CellModel(CellState state) public CellModel() public ImmutableCellState getState() public void setState(Object newState) public String toString() public boolean equals(Object o) } package cellsociety.models.cell.data; public record Grid (List grid){ public String get(int row, int col) public int getRowSize() public int getColSize() } package cellsociety.models.cell.data; public record CellIndex (int index){ public int getIndex() } package cellsociety.models.cell.data.cellstate; public interface ImmutableCellState { boolean equals(Object o); String toString(); } package cellsociety.models.cell.data.cellstate; public class CellState implements ImmutableCellState { public CellState(Object cellState) public CellState clone() public ImmutableCellState getCellState() public void setCellState(Object cellState) public String toString() public boolean equals(Object o) public String getState() } package cellsociety.models.cell.data.cellstate; public class CellStateWator extends CellState{ public CellStateWator(Object cellState, WaTorCellData w) public CellState clone() public void initWaTorData() public WaTorCellData getWaTorCellData() } package cellsociety; public class Main extends Application { public void start (Stage primaryStage) public double getVersion () } package cellsociety.controllers; public class Controller { public Controller() public Society determineModel(String modelName) throws ClassNotFoundException, InvocationTargetException, InstantiationException, IllegalAccessException, NoSuchMethodException public List getSocietyStates() public void changeStateColor(String stateToChange, Color color) throws RuntimeException, NullPointerException public void handleClickOn(int row, int col) public void startAnimation() throws NullPointerException public void stopAnimation() public CellList getCellList() public AdjacenyList getAdjacencyList() public Initializer getInitializer() public void setAnimationSpeed(double speed) public String getSimInfo() throws NullPointerException public void writeToFile(File file) throws IOException public void stepData() throws NullPointerException } package cellsociety.views.societies; public abstract class SocietyView extends Pane { public abstract void show(ImmutableCellList cellList); public abstract void changeColor(CellList cellList, String stateToChange, Color color); protected void changeMyColor(CellList cellList, String stateToChange, Consumer consumer) protected abstract void attachListeners(Rectangle r, int row, int col); public abstract CellState getStateToClick(); public void display(ImmutableCellList cellList, BiConsumer consumer) } package cellsociety.views.societies; public class RockPaperScissorsView extends SocietyView { public RockPaperScissorsView(Controller controller) public void show(ImmutableCellList cellList) public CellState getStateToClick() protected void attachListeners(Rectangle r, int row, int col) public void changeColor(CellList cellList, String stateToChange, Color color) } package cellsociety.views.societies; public class PercolationView extends SocietyView { public PercolationView(Controller controller) public void show(ImmutableCellList cellList) public void changeColor(CellList cellList, String stateToChange, Color color) protected void attachListeners(Rectangle r, int row, int col) public CellState getStateToClick() } package cellsociety.views.societies; public class SpreadOfFireView extends SocietyView { public SpreadOfFireView(Controller controller) public void show(ImmutableCellList cellList) public void changeColor(CellList cellList, String stateToChange, Color color) protected void attachListeners(Rectangle r, int row, int col) public CellState getStateToClick() } package cellsociety.views.societies; public class SchellingsView extends SocietyView { public SchellingsView(Controller controller) public void show(ImmutableCellList cellList) protected void attachListeners(Rectangle r, int row, int col) public CellState getStateToClick() public void changeColor(CellList cellList, String stateToChange, Color color) } package cellsociety.views.societies; public class GameOfLifeView extends SocietyView { public GameOfLifeView(Controller controller) public void show(ImmutableCellList cellList) public CellState getStateToClick() protected void attachListeners(Rectangle r, int row, int col) public void changeColor(CellList cellList, String stateToChange, Color color) } package cellsociety.views.societies; public class WaTorView extends SocietyView { public WaTorView(Controller controller) public void show(ImmutableCellList cellList) public void changeColor(CellList cellList, String stateToChange, Color color) protected void attachListeners(Rectangle r, int row, int col) public CellState getStateToClick() } package cellsociety.views; public class StartScreen { public StartScreen(double size) public Scene makeScene(Stage stage, double width, double height) } package cellsociety.views; public class CellSocietyView { public static final String DATA_FILE_FOLDER public CellSocietyView(double size, ResourceBundle labels) public Scene makeScene(Pane pane, double width, double height) public BorderPane makePane(Stage stage, double width, double height) public void loadFile(File dataFile) }