bkgm

Crates.iobkgm
lib.rsbkgm
version0.3.1
sourcesrc
created_at2023-09-19 13:32:51.309116
updated_at2024-02-08 22:43:53.552635
descriptionA Rust Backgammon library
homepage
repositoryhttps://github.com/bungogood/bkgm
max_upload_size
id976896
size85,156
Jonathan Good (bungogood)

documentation

https://docs.rs/bkgm/latest/bkgm

README

bkgm

Build

Bkgm is a versatile Rust crate designed to facilitate Backgammon-related operations, such as move generation, position parsing, conversion between standards, and the implementation of the perfect hash for bearoff and hypergammon databases. It supports both traditional Backgammon and 3-checker Hypergammon and provides the foundation for building Backgammon engines or APIs.

Example Position

Here's a visual representation of the starting position in Backgammon:

Position ID: 4HPwATDgc/ABMA
┌13─14─15─16─17─18─┬───┬19─20─21─22─23─24─┬───┐
│ X           O    │   │ O              X │   │
│ X           O    │   │ O              X │   │
│ X           O    │   │ O                │   │
│ X                │   │ O                │   │
│ X                │   │ O                │   │
│                  │BAR│                  │OFF│
│ O                │   │ X                │   │
│ O                │   │ X                │   │
│ O           X    │   │ X                │   │
│ O           X    │   │ X              O │   │
│ O           X    │   │ X              O │   │
└12─11─10──9──8──7─┴───┴─6──5──4──3──2──1─┴───┘

Features

  • Support for the Gnubg position id format.
  • Ability to generate possible positions.
  • Macros to create Backgammon and Hypergammon positions.
  • State trait implemented for both Backgammon and Hypergammon.

TODO

  • Move generation (next possible position generation is already implemented).
  • Move parsing (e.g., 24/23*/22*/21*).
  • Improve test coverage.
  • Add a game trait, enabling Mat files.
  • Addition of optional rules
  • Improve macros to work with bar and off

References

Commit count: 27

cargo fmt