#game #tic-tac-toe #chess #tak

nightly bin+lib zero_sum

An analysis engine for zero-sum games with game implementations

7 releases (stable)

Uses old Rust 2015

1.2.0 Apr 23, 2017
1.1.2 Feb 9, 2017
1.0.0 Nov 3, 2016
0.2.0 Sep 14, 2016
0.1.0 Sep 9, 2016

#1457 in Game dev


Used in takkerus

GPL-3.0 license

240KB
5K SLoC

zero_sum

An analysis engine for zero-sum games.

This crate provides a number of traits that can be used to facilitate the implementation of a zero-sum game, and to allow the analysis thereof.

Also provided through the use of optional features are implementations for tic-tac-toe and the game of tak.

For usage instructions, see the documentation.


lib.rs:

An analysis engine for zero-sum games.

This crate provides a number of traits that can be used to facilitate the implementation of a zero-sum game, and to allow the analysis thereof.

Also provided through the use of optional features are implementations for tic-tac-toe and the game of tak.

Usage

This crate is on crates.io and can be used by adding zero_sum to the dependencies in your project's Cargo.toml.

[dependencies]
zero_sum = "1.2"

and add this to your crate root:

extern crate zero_sum;

If you want to implement the library, you'll need to include a #[macro_use] line before extern crate zero_sum;

If you want to use one of the implementations provided inside the zero_sum::impls module, you'll need to specify the appropriate features in your project's Cargo.toml:

[features]
default = ["zero_sum/with_tak"]

for instance, to include the tak module.

Implementation

The three basic traits are Ply, Resolution, and State. These form the basic building blocks of any zero-sum game.

In order to provide analysis, one must also create an evaluator type with analysis::Evaluator that has an associated evaluation type that implements analysis::Evaluation (usually a tuple wrapper around a numeric type, i.e. struct Eval(i32);). Finally, implement analysis::Extrapolatable on the State type.

Example

The provided tic-tac-toe implementation is very simple and a usage example can be found in examples/tic_tac_toe.rs.

Dependencies

~0–3.5MB
~68K SLoC