---
# System prepended metadata

title: API Lab Discussion

---

# API Lab Discussion
# Cell Society API Discussion

## Names and NetIDs

Martha Aboagye(mfa23)
Joshua Petitma (jmp157)
Oliver Rodas (oar5)
Jiyang Tang (jt304)

### Simulation API Motivation/Analogies

### External

- setConfig(String name, T value): controller configurates simulation
- getStatsMap(): controller gets the statistics of a simulation
- setState(int r, int c, State s, boolean immediate): cotroller sets the state of a cell
- update(): controller calls this to update the simulation
- getGrid(): controller uses this to get a representation of grid

### Internal

- updateNextStates(): Simulation calls this in `update()` to calculate and update the states

### Controller API Classes/Methods

#### External

- setSpeed(double speed): MainView calls this in a callback way to change game speed
- setPause(): MainView calls this in a callback way to pause
- setResume(): MainView calls this in a callback way to resume
- setStart(): MainView calls this in a callback way to start 
- step(): JavaFX calls to update the game
- setConfig(String filename): MainView calls this in a callback way to set the current config file 

#### Internal

- setXMLParser(String type): called by itself to change current XML parser
- makePopulationGraph(): callbed by itself to make population graph
