A Rust client (#18)
* 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
This commit is contained in:
27
readme.md
Normal file
27
readme.md
Normal file
@ -0,0 +1,27 @@
|
||||
# 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](https://github.com/rust-lang-nursery/rustup.rs) 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.
|
||||
Reference in New Issue
Block a user