gemau

Crates.iogemau
lib.rsgemau
version0.1.0
sourcesrc
created_at2024-09-25 08:30:12.423415
updated_at2024-09-25 08:30:12.423415
descriptionThe beginnings of a computer algebra system for Combinatorial Game Theory.
homepage
repositoryhttps://github/alfiemd/gemau
max_upload_size
id1386114
size25,735
(alfiemd)

documentation

README

gemau

The first seed of what will hopefully be a computer algebra system for CGT.

The current goal of this crate is to provide first-class support for partizan misère research. At present, it contains only functionality for studying Left dead ends, but this will soon increase. In the long term, this crate will also aim to serve more traditional use cases, like normal play.

Examples

use gemau::LeftDeadEnd;

let g = LeftDeadEnd::waiting(4);
let h = g + 2;

// factors are 0, 1, 2, W_4, 1 + W_4, 2 + W_4
assert_eq!(h.factors().len(), 6);

let k = LeftDeadEnd::with_options(3..7);
assert_eq!(k.flex(), 1);
assert_eq!(k.race(), 4);
assert_eq!(k.birth(), 7);

let j = LeftDeadEnd::waiting(3);
let k = k + j;
assert_eq!(k.flex(), 9);
assert_eq!(k.race(), 5);
assert_eq!(k.birth(), 10);

If you want the crate to be finished quicker, then you could consider contributing. :)

Similiar projects

Given the current emptiness of this project, you should take a look at the following:

  • CGSuite if you need to get things done.
  • cgt if you like your games played rusty.
  • haskell-cgt for the Haskellians.

License

This project is released under The Unlicense, dedicated to the public domain.

Contributing

Contributions welcome! :)

By submitting a pull request or otherwise contributing to this project, you agree to dedicate your contribution to the public domain under the terms of The Unlicense, and you certify that you have the right to do so.

Commit count: 0

cargo fmt