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.


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

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:

default = ["zero_sum/with_tak"]

for instance, to include the tak module.


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.


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



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



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



This trait marks a ply.


A game's resolution.


The state of the game.