* DEV-1761: Clean up Ruleset interface (#115)
* remove legacy ruleset types and simplify ruleset interface
* remove unnecessary settings argument from Ruleset interface
* decouple rules.Settings from client API and store settings as strings
* DEV 1761: Add new BoardState and Point fields (#117)
* add Point.TTL, Point.Value, GameState and PointState to BoardState
* allow maps to access BoardState.GameState,PointState
* add PreUpdateBoard and refactor snail_mode with it
* fix bug where an extra turn was printed to the console
* fix formatting
* fix lint errors
Co-authored-by: JonathanArns <jonathan.arns@googlemail.com>
* Separated out rivers and bridges into its own file with three map variants
* fixing tags
* removed extra 4 starting positions from the medium map since it only supports 8 players
* update GetUnoccupiedPoints to consider hazards with a flag
* use new utility method to fine unoccupied points and enforce map sizes
* changed up casting to make IsAllowable() more usable
* change map support for large #'s of snakes
* test square board fn
* format comment
* add whitespace
* better support large #'s of snakes on small boards
* include an intermediate xlarge size
* fix for rivers and bridges snake start positions
* update max player count, add unit test
* set player count to 12 (max for smallest size)
* fix: one of the 19x19 spawn points
* randomize snake placement at start positions
* randomly choose starts in quadrants
* fix: check that start positions are valid
* modify food placement to avoid hazards
* WIP: initial data model for new meta props
* WIP: implemented new props
* test and bug fix:
- add coverage of players and sizes
- fix unlimited map size bug
* FIX: update supported players for arcade to 6
* fix: test should be min -> max, not max->max
* Change some naming and the FixedSizes function
* update comment to reflect API changes
* improve comment clarity
* rename field for improved clarity
* change some more "map" -> "board" wording
* add helper to draw a ring of hazards
* refactor tests to not be internal tests
* add "hz_inner_wall" map
* add "hz_rings" map
* fix map registry
* fix: edge case bugs in drawRing
* remove println
* add "hz_columns"
* add "hz_rivers_bridges" map
* WIP: implementing spiral hazards map
* finish basic testing of 'hz_spiral'
* include first turn
* add "hz_hazards" map
* remove incorrect author
* add "hz_grow_box" map
* add "hz_expand_box" map
* add "hz_expand_scatter" map
* remove debug
* document the new "Range" method
* - use rules.RulesetError instead of generic error
- use a rules.Point for map rivers and bridgets map key
* use rules.RulesetError instead of errors.New
* provide more detail about boundar conditions
* fix documentation (max can be == min)
* add unit tests