Crate zero_sum [] [src]

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.

Modules

analysis

Contains the traits and tools to provide analysis of zero-sum games.

impls

Contains implementations of the library for a few zero-sum games.

Macros

prepare_evaluation_tuple

Implement arithmetic operators (Add, Sub, Mul, Neg, Div) and Display for a tuple struct in terms of the enclosed type.

Traits

Ply

This trait marks a ply.

Resolution

A game's resolution.

State

The state of the game.