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 ( |
Traits
Ply |
This trait marks a ply. |
Resolution |
A game's resolution. |
State |
The state of the game. |