Crates.io | gamie |
lib.rs | gamie |
version | 0.9.1 |
source | src |
created_at | 2021-11-25 03:17:05.366222 |
updated_at | 2024-03-22 11:57:34.039242 |
description | A Rust library provides abstractions for several classic tiny games |
homepage | |
repository | https://github.com/EAimTY/gamie |
max_upload_size | |
id | 487393 |
size | 86,103 |
A Rust library provides abstractions for several classic tiny games.
gamie provides simple yet adequate abstractions for several classic tiny games.
gamie only came with a few dependencies, it can be easily integrated into your projects.
To use gamie, you should enable modules in Cargo.toml
. For example tictactoe
:
[dependencies]
gamie = { version = "0.9.0", features = ["std", "tictactoe"] }
Now you can use the TicTacToe
game abstraction:
use gamie::tictactoe::{TicTacToe, Player as TicTacToePlayer, Status as TicTacToeGameStatus};
let mut game = TicTacToe::new().unwrap();
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.is_ended());
assert_eq!(game.get_game_status(), &TicTacToeGameStatus::Tie);
Check the docs for further information.
Currently, the following modules are available:
Bring in the serde
feature to enable serialization and deserialization for structs
Opt in the bincode
feature to enable encoding and decoding with bincode
This crate runs flawlessly on bare metal.
To remove the Rust standard library dependency, opt out the std
feature by disabling default-features
in Cargo.toml
:
[dependencies]
gamie = { version = "0.9.0", default-features = false, features = ["tictactoe"] }
GNU General Public License v3.0