* 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 |
||
|---|---|---|
| .github | ||
| cli | ||
| client | ||
| test | ||
| .gitignore | ||
| .goreleaser.yml | ||
| board.go | ||
| board_test.go | ||
| CODE_OF_CONDUCT.md | ||
| constrictor.go | ||
| constrictor_test.go | ||
| CONTRIBUTING.md | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| README.md | ||
| royale.go | ||
| royale_test.go | ||
| ruleset.go | ||
| ruleset_test.go | ||
| solo.go | ||
| solo_test.go | ||
| squad.go | ||
| squad_test.go | ||
| standard.go | ||
| standard_test.go | ||
| wrapped.go | ||
| wrapped_test.go | ||
BattlesnakeOfficial/rules
Battlesnake rules and game logic, implemented as a Go module. This code is used in production at play.battlesnake.com. Issues and contributions welcome!
CLI for Running Battlesnake Games Locally
This repo provides a simple CLI tool to run games locally against your dev environment.
Installation
Download precompiled binaries here:
https://github.com/BattlesnakeOfficial/rules/releases
Install as a Go package. Requires Go 1.15 or higher. [Download]
go get github.com/BattlesnakeOfficial/rules/cli/battlesnake
Compile from source. Also requires Go 1.15 or higher.
git clone git@github.com:BattlesnakeOfficial/rules.git
cd rules
go build -o battlesnake ./cli/battlesnake/main.go
Usage
Example command to run a game locally:
battlesnake play -W 11 -H 11 --name <SNAKE_NAME> --url <SNAKE_URL> -g solo -v
For more details, see the CLI README.
FAQ
Can I run games locally?
Yes! See the included CLI.
How is this different from the old Battlesnake engine?
The old game engine was re-written in early 2020 to handle a higher volume of concurrent games. As part of that rebuild we moved the game logic into a separate Go module that gets compiled into the production engine.
This provides two benefits: it makes it much simpler/easier to build new game modes, and it allows the community to get more involved in game development (without the maintenance overhead of the entire game engine).
Feedback
- Do you have an issue or suggestions for this repository? Head over to our Feedback Repository today and let us know!