3个不稳定版本
0.3.1 | 2024年2月8日 |
---|---|
0.3.0 | 2023年10月21日 |
0.2.0 | 2023年9月19日 |
0.1.0 |
|
#560 in 数据库接口
85KB
2K SLoC
bkgm
bkgm是一个多功能的Rust包,旨在简化双陆棋相关的操作,如移动生成、位置解析、标准转换以及实现熊牌和超级双陆棋数据库的完美哈希。它支持传统双陆棋和3子超级双陆棋,并提供了构建双陆棋引擎或API的基础。
示例位置
以下是双陆棋起始位置的视觉表示
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─┴───┘
功能
- 支持Gnubg位置ID格式。
- 生成可能位置的能力。
- 宏用于创建双陆棋和超级双陆棋位置。
- 实现了双陆棋和超级双陆棋的状态特性。
待办事项
- 移动生成(下一个可能位置生成已实现)。
- 移动解析(例如,24/23*/22*/21*)。
- 提高测试覆盖率。
- 添加游戏特性,以启用Mat文件。
- 添加可选规则
- 改进宏以与酒吧和离场配合工作
参考
- Bkgm 文档
- 双陆棋 维基百科
- Wildbg by Carsten Wenderdel
- 双陆棋位置枚举:完美哈希(1997) by A. T. Benjamin and A. M. Ross
依赖项
~225KB