# Step based Arimaa Engine [![docs.rs][docs-badge]][docs-url] [![Crates.io][crates-badge]][crates-url] [![MIT licensed][mit-badge]][mit-url] [crates-badge]: https://img.shields.io/crates/v/arimaa-engine-step.svg [crates-url]: https://crates.io/crates/arimaa-engine-step [mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg [mit-url]: https://github.com/JamesMHarmon/arimaa-engine-step/blob/master/LICENSE [docs-badge]: https://docs.rs/arimaa_engine_step/badge.svg [docs-url]: https://docs.rs/arimaa_engine_step/latest/arimaa_engine_step/ ## Overview A game engine for the board game [Arimaa](http://arimaa.com/arimaa/). This library provides the functionalities: * Generate a set of valid steps from any state. * Generate a set of valid moves from any state. * Supports Zobrist hashing for transpositions. * Parsers for boards and actions. ## [Documentation][docs-url] ## Example ### Parse a game state and take an action and generate a set of valid actions from that state. ```rust use arimaa_engine_step::{action, board}; let game_state = board!( "2g +-----------------+ 8| h c d m e d c h | 7| r r r r r r r r | 6| x x | 5| | 4| | 3| x x | 2| R R R R R R R R | 1| H C D M E D C H | +-----------------+ a b c d e f g h" ); let action = action!(d2n); let game_state = game_state.take_action(&action); println!("{:?}", game_state.valid_actions()); ``` ### [Additional Examples][docs-url] ## License This project is licensed under the [MIT license]. [MIT license]: https://github.com/tokio-rs/tokio/blob/master/LICENSE