Crates.io | magpie |
lib.rs | magpie |
version | 0.11.1 |
source | src |
created_at | 2020-10-02 16:12:53.306553 |
updated_at | 2024-04-17 23:38:11.996176 |
description | Reasonably efficient Othello library built with bitboards |
homepage | |
repository | https://github.com/LimeEng/magpie/ |
max_upload_size | |
id | 295433 |
size | 116,956 |
Magpie is a simple Othello library. Othello is a perfect information, zero-sum game for two players.
Magpie is built with bitboards which allows for extremely fast updates and queries. Two abstraction levels are available, the higher level [Game
] and lower-level [Board
]. The [Game
]-struct guarantees that only legal moves will be made and that the board will be kept consistent. The drawback is that it is not as flexible as the alternative, or as performant. The [Board
]-struct does not keep track of whose turn it is, whether a player passed their turn, or validates inputs, which makes it better suited for engines.
Documentation is hosted on docs.rs
Simply run:
$ cargo add magpie
Alternatively, add this to your Cargo.toml
:
[dependencies]
magpie = "0.11"
Serialization with Serde is not supported by default. If you want to opt into using magpie with Serde you can enable a feature flag. Simply change your magpie dependency to the following:
[dependencies]
magpie = {version = "0.11", features = ["serde"]}
Examples are found here.
Included as an example is a functional game which allows you to play Othello against a random AI. To start the game, run the following command:
$ cargo run --example human_vs_ai
Benchmarks are found here
These benchmarks are here to guide improvements of the current algorithms as well as the implementation of new features.
Simply run cargo bench
to run all benchmarks.