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.

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 = "0.1"

and add this to your crate root:

#[macro_use]
extern crate zero_sum;

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 evaluation type (usually a tuple wrapper around a numeric type, i.e. struct Eval(i32);) with analysis::Evaluation, and implement analysis::Evaluatable and analysis::Extrapolatable on the State type.

Example

A working example can be found in examples/tic_tac_toe.rs.

Modules

analysis

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

Macros

impl_tuple_operation

Implement a binary operation for a tuple struct in terms of the enclosed type.

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.