* Initial commit The client is currently only capable of registering for play * Switch to serde for json serialization * Parse all JSON messages Or rather all messages sent in the game * Switch to rust nightly for serde This mainly solves the whole json parsing problem reasonably well * Move move logic to snake module * Add util functions * Improve error handling in main * Implement utility functions on map struct And keep those that do not deal with the map in the util module * Refactor and improve the maputils * Add test cases to maputil functions Also fix the snake panicking due to an incorrect unwrap * Fix snake panicking due to bad unwrap Missed staging these in the last commit... * Add logging * Add a heart beat to the client Needs some proper error handling however * Handle errors properly in main.rs Also refactor to improve readability * Print what is happening to console * Add readme file Also lock the package versions used and update to latest nightly
1.0 KiB
SNAKE CLIENT
Do you want the most annoying compiler ever? Do you want to constantly think of what is owning what variable? Do you want to stare angrily at the screen and wonder what the hell it means that some dumb value can't be moved? Then here is the ultimate snake client for you, written for the beautiful language Rust.
Requirements
- Rust nightly (I recommend using rustup to install it)
- Cargo (should automatically be installed by rustup)
- Snake Server (local or remote)
The packages used have a tendency to sometimes break due to using the nightly build, so if it doesn't work try to install specifically: rustc 1.11.0-nightly (12238b984 2016-06-04).
Setup
A. Clone the repository: git clone https://github.com/cygni/snakebot-clients.git;
B. Open: <repo>/snakebot-rust;
C. Run the snake: cargo run;
D. Improve the snake: edit src/snake.rs, and more specifically get_next_move.
E. Debugging: see log/snake.log for all log output from the snake.