A Rust library provides abstractions for several classic tiny games.
gamie aims to provide simple yet adequate abstractions for several classic tiny games.
gamie is quite lightweight - came with few dependencies, no AI, just pure game implementions. It can be easily integrated into your projects.
To use gamie, you should enable modules you need in Cargo.toml
. For example tictactoe
:
toml
[dependencies]
gamie = { version = "*", features = ["tictactoe"] }
Now you can use the tictactoe
:
```rust use gamie::tictactoe::{TicTacToe, Player as TicTacToePlayer, GameState as TicTacToeGameState};
let mut game = TicTacToe::new(); game.place(TicTacToePlayer::Player0, 1, 1).unwrap(); game.place(TicTacToePlayer::Player1, 0, 0).unwrap(); game.place(TicTacToePlayer::Player0, 0, 2).unwrap(); game.place(TicTacToePlayer::Player1, 2, 0).unwrap(); game.place(TicTacToePlayer::Player0, 1, 0).unwrap(); game.place(TicTacToePlayer::Player1, 1, 2).unwrap(); game.place(TicTacToePlayer::Player0, 2, 1).unwrap(); game.place(TicTacToePlayer::Player1, 0, 1).unwrap(); game.place(TicTacToePlayer::Player0, 2, 2).unwrap(); assert!(game.isended()); asserteq!(game.status(), TicTacToeGameState::Tie); ```
Check the docs for further usage information.
Currently, the following modules are available:
Bring in the serde
feature to enable serialization and deserialization.
toml
[dependencies]
gamie = { version = "*", features = ["serde", "tictactoe"] }
This crate can run flawlessly on bare metal.
Opt out the std
feature by disabling default-features
in Cargo.toml
to remove the Rust standard library dependency.
toml
[dependencies]
gamie = { version = "*", features = ["tictactoe"], default-features = false }
GNU General Public License v3.0