magpie

Crates.iomagpie
lib.rsmagpie
version0.11.1
sourcesrc
created_at2020-10-02 16:12:53.306553
updated_at2024-04-17 23:38:11.996176
descriptionReasonably efficient Othello library built with bitboards
homepage
repositoryhttps://github.com/LimeEng/magpie/
max_upload_size
id295433
size116,956
Emil Englesson (LimeEng)

documentation

README

CI status Latest version

Magpie

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.

Table of Contents

Documentation

Documentation is hosted on docs.rs

Usage

Simply run:

$ cargo add magpie

Alternatively, add this to your Cargo.toml:

[dependencies]
magpie = "0.11"

Crate features

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

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

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.

Commit count: 139

cargo fmt