package cellsociety.cells public class percolationCell extends gridCell{ public percolationCell(int id, cellState state) public boolean cellChanges(List> myNeighbors, List prevCellInfo) public List reduceNeighbors(List> myNeighbors, List prevCellInfo) } package cellsociety.cells public class segregationCell extends gridCell{ public segregationCell(int id, cellState state, double percentSimilar) public boolean cellChanges(List> myNeighbors, List prevCellInfo) public List>> getPossibleCellUpdate(List myNeighbors, List prevCellInfo) public List reduceNeighbors(List> myNeighbors, List prevCellInfo) public void updateCell(List> myNeighbors, Pair[] cellsToUpdate) } package cellsociety.cells public class fireCell extends gridCell { public fireCell(int id, cellState state, double probFireCatch) public boolean cellChanges(List> myNeighbors, List prevCellInfo) public List reduceNeighbors(List> myNeighbors, List prevCellInfo) } package cellsociety.cells public class lifeCell extends gridCell{ public lifeCell(int id, cellState state) public boolean cellChanges(List> myNeighbors, List prevCellInfo) public List reduceNeighbors(List> myNeighbors, List prevCellInfo) } package cellsociety.cells public class watorCell extends gridCell{ public watorCell(int id, cellState state, int breedTime, int sharkEnergy, int fishEnergy, int breedEnergy) public boolean cellChanges(List> myNeighbors, List prevCellInfo) public List reduceNeighbors(List> myNeighbors, List prevCellInfo) public List>> getPossibleCellUpdate(List myNeighbors, List prevCellInfo) public void updateCell(List> myNeighbors, Pair[] cellsToUpdate) } package cellsociety.cells public abstract class gridCell { public gridCell(int id, cellState state) public abstract boolean cellChanges(List> myNeighbors, List prevCellInfo) public List>> getPossibleCellUpdate(List myNeighbors, List prevCellInfo) public abstract List reduceNeighbors(List> myNeighbors, List prevCellInfo) public void updateCell(List> myNeighbors, Pair[] cellsToUpdate) public cellState getState() public int hashCode() } package cellsociety public class Grid { public Grid(String simulationType, Map>> cellNeighbors, public void initializeGrid(String simulationType, List initialCellStates, public ArrayList getTypeParameter() public List getUpdatedGrid() public List screenshotOfGrid() } package cellsociety public class Controller { public Controller(String selection) public ArrayList> getViewInitialize() public List updateGrid() } 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 public class Main extends Application { public void start(Stage stage) throws Exception } package cellsociety.view public class segregationView extends View { public segregationView(String titleS) } package cellsociety.view public class percolationView extends View { public percolationView(String titleS) } package cellsociety.view public abstract class View { public View (String myUserSelection) public Scene makeScene() public void update() public void runTimeline() } package cellsociety.view public class fireView extends View{ public fireView(String titleS) } package cellsociety.view public class lifeView extends View { public lifeView(String titleS) } package cellsociety.view public class watorView extends View { public watorView(String titleS) } package cellsociety public class Triple< A,B, C> { public Triple(A first, B second, C third) public A getFirst () public B getSecond () public C getThird () public String toString () public static Triple of (T value) } package cellsociety public class Model { public Model(String setup, String initialize) public ArrayList parseTypeSpecificValues(String typeName, ArrayList elementNames, public Triple>>, ArrayList, ArrayList> getGridSettings() }