* ensure /end request is always called, and refactor win/draw logic
* clean up logging and error handling during initialization
* automatically generate friendly snake names
* title-case snake names
* print out list of alive snake names instead of count
* log snake names, IDs, and URLs at startup
* print out state for turn zero
* add minimal support for serving a game to the board UI
* refactor into new board package
* support reporting errors and author names to board
* support passing an alternate board URL
* avoid using IPv6 for local URL
* use rules.Point instead of a custom Point type for board package
* use zero for generic communication error code in cli
* rename createGameEvent to buildFrameEvent
* tests for conversion from boardState/snakeState to game frame
* remove squad support and switch to using pipelines only in RulesBuilder
* remove spawn_food.standard from legacy ruleset definitions
* bugfix: Royale map generates Standard food
* add maps support to CLI
* add automated tests for all registered GameMap implementations
* update README
Refactor rulesets into smaller composable operations
In order to mix up the functionality from different rulesets like Solo, Royale, etc. the code in these classes needs to be broken up into small functions that can be composed in a pipeline to make a custom game mode.
* Initial addition of a game exporter
* Fix snake state bug, remove test logs, fix final output line being empty
* Ignore test JSONL file
* Added explanation for design decision on the you key in SnakeResponse
* Adjust gitignore to be more generic
* Retain consistency in usage of pointer
* Re-word explanation to refer to requests instead of responses
* Remove unnecessary nil check
* Check error returned by WriteString
* Change file permissions for output file
* Initialise gameexporter regardless of whether output is requested
* Print error and exit if export to file fails
* Added another comment explaining reasoning around export checks
* Fixed broken test due to changed return type
* move snake API structs into a new client package
* add customizations to snake objects
* refactor and add support for passing snake customizations in games
* fix sending of new params
* add royale and squad settings to requests
* add --debug-requests option
* update test for request body and add helper
Co-authored-by: Penelope Phippen <penelope@hey.com>
* move hazard damage into StandardRuleset
* OutOfBounds -> Hazards
* remove "out of bounds" in comment
* add cases for eating food to hazard damage test