bkgm 0.3.1

A Rust Backgammon library
Documentation
  • Coverage
  • 13.58%
    11 out of 81 items documented0 out of 46 items with examples
  • Size
  • Source code size: 85.05 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 5.64 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 11s Average build duration of successful builds.
  • all releases: 11s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • bungogood/bkgm
    1 0 1
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • bungogood

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