#riichi #mahjong #wasm-component

riichi-tools-rs

立直麻将工具库,主要用于WASM

4个版本

0.0.70 2021年5月4日
0.0.69 2021年4月26日
0.0.68 2021年3月24日
0.0.67 2021年3月23日
0.0.66 2021年3月16日

1147WebAssembly

26 每月下载量
riichi-tools-cli 中使用

MIT 许可证

1MB
7K SLoC

riichi-tools-rs

Build Status GitHub code size in bytes License

用Rust编写的立直麻将工具库,主要用于作为WASM组件。

从许多其他麻将工具中汲取了灵感,如 https://euophrys.itch.io/mahjong-efficiency-trainerhttp://tenhou.net/2/http://kobalab.net/majiang/dapai.html 等。

该库的展示/前端可以在 https://riichi.harphield.com/tools/ 找到

立直和乌 guti 模式

提供了两种立直和乌 guti 计算的实现。默认的实现较慢,但不使用任何查找表,因此生成的二进制文件较小:非常适合WASM。

另一种是从 Spines.Mahjong 移植的,速度要快得多,但二进制文件较大。

您可以通过在 cargo.toml 中启用功能来启用快速模式

riichi-tools-rs= {version= "0.0.70",features= ["fast_shanten"] }

路线图

  • 南4模拟器
    • 一个你在最后一轮尝试获胜的游戏 [完成] [已移至单独的项目,riichi-tools-wasm]
  • 手牌分析
    • 13张牌的立直 [完成]
    • 14张牌的立直,带有完整的手牌指示 [完成]
    • 乌 guti,牌接受 [完成]
    • 完整手牌(14张牌)的手牌价值 + 形状 [完成]
    • 可能的结局的手牌价值 + 形状 [完成]
    • 以上所有功能也适用于带叫牌的手牌 [完成]
    • 规则变体(天凤 vs WRC vs 麻将魂等)
  • 表格分析
    • 安全牌
    • 等待概率百分比
  • 回放分析
    • 天凤回放解析
    • 麻将魂回放解析
    • 弃牌评分

手牌表示解析

Hand::from_text() 方法接受以下格式的字符串表示

  • 1-9 m, s 或 p 表示万、筒、条
  • 0 m, s 或 p 是红五(目前支持主要处于WIP状态)
  • 1-7 z 表示面子,其中
    • 1 = 东
    • 2 = 南
    • 3 = 西
    • 4 = 北
    • 5 = 白龙
    • 6 = 绿龙
    • 7 = 红龙
  • 开放形状
    • (XYZCI) 是鸡,其中XYZ是连续数字,C是颜色(m, p, s)和I是叫牌的牌索引(0-2)。
    • (pXCIr) 是 pon,其中 X 是 0-9,C 是颜色(m、p、s、z),I 是被呼叫玩家的索引(1 = shichou,2 = toimen,3 = kamicha)。如果 pon 有红色的 5,则表示将使用 0 - 例如 (p0m2)。如果是被呼叫的红色 5,则添加 r
    • (kXCIr) 是闭坎或大明的(开叫坎)。应用相同的规则,但 I 是可选的 - 如果不可用,则该坎被视为闭坎。
    • (sXCIr) 是守明的(加坎)。应用与大明的相同规则。

一些示例

  • 123m44456888s678p
  • 456s11133z(456m1)(456p0)
  • 4z(p1z1)(k2z)(s3z3)(p6z2)

依赖关系

~4–14MB
~145K SLoC