Commit graph

87 commits

Author SHA1 Message Date
bdb698394a Re-Order Simulation Class 2018-10-23 21:02:42 +02:00
e40dddde52 Shorten toggleCell Function Name 2018-10-23 21:01:27 +02:00
2e7fd7c3d3 Revert "Add getCell and setCell method to Simulation"
This reverts commit 52b440351d.
2018-10-23 20:58:11 +02:00
52b440351d Add getCell and setCell method to Simulation 2018-10-23 20:41:54 +02:00
5116aff8a4 Refactor toggleCellState function 2018-10-23 20:31:44 +02:00
b1d96efc84 Fix toggleCell Function in Simulation 2018-10-23 20:30:20 +02:00
c8e2417ab8 Remove duplicate functions to set Grid Cells 2018-10-23 20:21:21 +02:00
e840a3e580 Remove unused variable dispersal 2018-10-23 14:47:23 +02:00
474adb740c Split up addRandomPattern function 2018-10-22 19:17:00 +02:00
0b5b1de454 Remove Duplicate Import 2018-10-21 14:06:36 +02:00
cb9da3bc54 Remove unnecessary CellPattern enum from Simulation 2018-10-21 14:01:34 +02:00
3a6e34945a Remove output argument from clearMap function 2018-10-21 14:00:53 +02:00
e115ed2f48 Make clear map function name more concise
Renam resetting the grid to clearMap.
2018-10-21 14:00:22 +02:00
66c273c783 Make Simulation dirty-flag public 2018-10-21 13:55:15 +02:00
2ea974bbd5 Fix Snapshot Load and Save Functions
Were just pointers to the map before. Fix to be actual clones of the map.
2018-10-19 20:49:59 +02:00
0da2d08b74 Add Simulation Saving and Loading Methods 2018-10-19 19:59:00 +02:00
2169de16fd Add Tests to Simulation 2018-10-19 19:35:09 +02:00
e8c1e6ed8b Refactor Engine Methods
Extract method checking for update necessity.
2018-10-19 11:50:34 +02:00
2993b33d9e Add tests for CellPattern & GameOfLife classes 2018-10-19 10:24:40 +02:00
8db9cd6ff1 Move Simulation Accesses to Simulation Class
Everything has been refactored away from engine, which now only controls updating & rendering within a specific timestep. (As well as stepping forward by calling a single update)

Everything regarding grids, patterns and cells has been moved into the simulation and the Services have been updated to reflect that.
2018-10-18 15:21:50 +02:00
4f92c69a82 Rename Simulation function adding random patterns
Rename from addPattern to addRandomPattern to more clearly signify its purpose.
2018-10-18 11:32:00 +02:00
f1399064a2 Fix Simulation using RuleSet range for neighbor checks 2018-10-18 11:30:14 +02:00
e13962f371 Shorten RuleSet variable for their checked range
Range is self-explanatory and not as confusing as checkRange.
2018-10-18 11:29:55 +02:00
0aa3df30b4 Extract CellPattern and GameOfLife into own files 2018-10-18 11:27:44 +02:00
fbdf114fed Move RuleSet to its own directory 2018-10-18 11:21:18 +02:00
4f63947ab9 Delete unused Cell and Rule Classes
They were used under the old system of every
gridspace being its own cell data structure with its own rules to observe. 

Replaced by the RuleSet class. Cell has vanished in favor
of simple boolean values filling the grid.
2018-10-18 11:20:41 +02:00
c3244b085e Fix single steps not updating simulation 2018-10-18 11:04:23 +02:00
de1aa46743 Separate Simulation calculating updates and merging
Simulation updates were one step of calculation and merging the calculations into the map in one function.

Separating the two allows checking for a new update without affecting the grid, allows passing the last Update around and allows custom changes to the grid by passing changes to the merge function that were not derived from the update function.
2018-10-18 10:58:06 +02:00
e16085153a Rename Simulation in Engine Object 2018-10-18 09:59:26 +02:00
bac65ef116 Remove unnecessary pattern parameters 2018-10-18 09:57:08 +02:00
6d7120650f Add Special Patterns to RuleSet 2018-10-17 21:08:55 +02:00
e6e82f78f2 Remove unnecessary Switch Case in Simulation 2018-10-17 21:07:48 +02:00
9b2b5f3e55 Remove unnecessary Simulation variables 2018-10-17 21:00:14 +02:00
27d4879b1b Extract RuleSet Class from Simulation 2018-10-17 20:58:04 +02:00
245d9a22c2 Remove Cell Data Structure
Cells are only boolean values of true or false for now.
2018-10-16 18:21:21 +02:00
71f4df85af Refactor Simulation to be List of dumb cells
Cells are now only an empty struct, they carry no information beyond needing to be re-rendered. All Simulation logic is handled in the Simulation Class.
2018-10-15 17:28:09 +02:00
08155b70a5 Fix Pausing after every Update
Updates would pause when any change has happened, not when no change has happened.
2018-10-15 17:16:09 +02:00
c50e92fb19 Add simple stateChanges map into Simulation 2018-10-02 14:55:39 +02:00
a324d52df5 Fix Simulation Neighbor Propagation 2018-08-30 12:03:23 +02:00
b95d39d2b4 Fix not carrying width and height in Simulation 2018-08-30 10:58:55 +02:00
227357a745 Implement new Grid into Simulation 2018-08-30 10:57:14 +02:00
2dc1d7fecd Add Grid.fill constructor
Will completely fill the grid with the value passed in.
2018-08-30 10:32:34 +02:00
fb481669ed Add Coordinates setter
Sets the corresponding element to the parameter value passed in. Checks against the grid size constraints beforehand and throws RangeError if outside of constraints. Preferred method to set
element via coordinates.
2018-08-30 10:02:29 +02:00
5725757aa0 Add Coordinate getter documentation 2018-08-30 09:55:25 +02:00
5a72783d57 Add .toCoordinates() method to grid
Calculates the 2-D array coordinates from the corresponding list index passed in. Relies on grid width to calculate coordinates. Does not check against grid size constraints.
2018-08-30 09:53:05 +02:00
6c3fcbe7b0 Add .get method for coordinate element retrieval to grid
Coordinates passed in access the correct index in the internal list.
2018-08-30 09:43:46 +02:00
3f939601b3 Add toIndex method
can be used to get the correct index from coordinates passed in. Will only calculate the index, not take into consideration any grid size constraints etc.
2018-08-30 09:41:43 +02:00
b0e67d9f85 Add getter and setter methods for wrapper
!!Need testing
2018-08-29 22:13:13 +02:00
27ef72014e Add simple Grid - List Wrapper Data Structure 2018-08-29 22:12:19 +02:00
0c487f3427 Rename Grid to Simulation
in order to craft an actual grid data structure
2018-08-29 20:13:24 +02:00