8 个稳定版本
1.5.1 | 2024 年 8 月 3 日 |
---|---|
1.4.1 | 2024 年 7 月 31 日 |
110 在 数学 中排名
595 每月下载量
1MB
3.5K SLoC
通过终端使用里奇麻将计算器
CLI 工具,用于计算里奇麻将的手牌得分。
- 手动模式:给定番和符,计算得分
- 普通模式:给定手牌,计算包含役和符的得分
示例
计算器模式
~/$ mahc -m 4 30 --ba 3
> Dealer: 12500 (4200)
non-dealer: 8600 (2300/ 4200)
普通模式
注意:赢家的组必须最后出(这是为了正确计算符)
~/$ mahc --tiles rrrd EEEw 234p 234p 11p -w 1p -p Ew -s Ew
> 7 Han/ 50 Fu
Dealer: 18000 (6000)
Non-dealer: 12000 (3000/6000)
Yaku:
Iipeikou: 1
Honitsu: 3
Yakuhai: 1
Yakuhai: 1
Yakuhai: 1
Fu:
BasePoints: 20
ClosedRon: 10
NonSimpleClosedTriplet: 8
NonSimpleClosedTriplet: 8
SingleWait: 2
使用文件输入
# hands.txt
--tiles EEw NNw SSw WWw rrd wwd ggd -w gd -p Ew -s Ew -d 2
--tiles 123p 456p 789p rrrdo 99p -w 9p -p Ew -s Ew -d 2'
-m 4 30 --ba 3
~/$ mahc -f hands.txt
> Dealer: 144000 (48000)
Non-dealer: 96000 (24000/48000)
Yaku:
Tsuuiisou Yakuman
Daichiishin Yakuman
Shousuushii Yakuman
4 Han/ 30 Fu/ 3 Honba
Dealer: 12500 (4200)
non-dealer: 8600 (2300/4200)
6 Han/ 30 Fu
Dealer: 18000 (6000)
Non-dealer: 12000 (3000/6000)
Dora: 2
Yaku:
Honitsu: 2
Ittsuu: 1
Yakuhai: 1
Fu:
BasePoints: 20
NonSimpleOpenTriplet: 4
SingleWait: 2
符号
花色
花色 | 牌 |
---|---|
万(字符) | 1m, 2m, 3m, 4m, 5m, 6m, 7m, 8m, 9m |
饼(圆形) | 1p, 2p, 3p, 4p, 5p, 6p, 7p, 8p, 9p |
筒(竹子) | 1s, 2s, 3s, 4s, 5s, 6s, 7s, 8s, 9s |
字牌
类型 | 符号 |
---|---|
风牌 | Ew, Sw, Ww, Nw |
龙牌 | rd, gd, wd |
特殊符号
描述 | 示例 |
---|---|
开放序列 | 234po(饼色2、3、4的开放序列) |
- 例如:EEEw(东风的三张牌)
- 例如:234m(2、3、4的万牌序列)
- 例如:rrrrdo(红色龙牌的四张牌)
- 例如:11s(一张一的筒牌)
- 例如:8m(一张八的万牌)
安装
使用 cargo
cargo install mahc
mahc --version
从源码构建
git clone https://github.com/DrCheeseFace/rusty-riichi-mahjong-calculator
cd rusty-riichi-mahjong-calculator
cargo build
./target/debug/mahc --version
从最新版本
curl -s https://api.github.com/repos/DrCheeseFace/rusty-riichi-mahjong-calculator/releases/latest | grep "browser_download_url" | cut -d '"' -f 4 | wget -i -
unzip mahc-v1.1.0-x86_64-unknown-linux-gnu.zip -d mahc
cd mahc/x86_64-unknown-linux-gnu/release
./mahc --version
至今已实现的牌型验证
一个役
- 天元牌
- 一杯口
- 花牌
- 门前清自摸和
- 平和
- 立直
- 海底捞月
- 河底托
- 立直海象
- 七对
两个役
- 双立直
- 对对和
- 一色刻子
- 三色双刻子
- 三色双顺
- 三色三顺
- 三色三刻子
- 三色三顺
- 花牌
- 三杠
- 七对子
三个役
- 顺子
- 门前清大三元
- 连立直
六个役
- 纯顺
役满
- 国士无双
- 地租无双
- 地租无双13面待
- 十三幺
- 十三幺单等
- 大四喜
- 小四喜
- 大五番
- 役满
- 连立直
- 花牌
- 役满
- 十三幺
- 十三幺九门待
- 十三幺
- 天凤
- 地鳳
待办事项
- 验证一手牌是可能的(例如没有20张东风牌 :)
- 添加所有大役已完成
- 验证是否存在大役已完成
- 验证获胜牌已完成
- 将错误传播以获得良好的打印输出已完成
- 验证像不能立直和双立直这样的东西。所有那些花牌,刻子,顺子等等已完成
- 文件stdIn已完成?
- JSON输出标志
贡献
- 如果您发现了一个错误(可能有很多),请提交一个如何复现它的issue。
- 请注意,我们目前离完成还差很远。所以暂时先不管验证
依赖项
~4–6MB
~105K SLoC