Riichi
麻雀飜符手役点数計算
Japanese riichi mahjong hand calculation
Install with npm:
$ npm i riichi
Usage
const Riichi = require('riichi')
const riichi = new Riichi('112233456789m11s')
console.log(riichi.calc())
Output:
{
isAgari: true,
yakuman: 0,
yaku: { '一気通貫': '2飜', '一盃口': '1飜', '門前清自摸和': '1飜' },
han: 4,
fu: 30,
ten: 7900,
name: '',
text: '(東場南家)自摸 30符4飜 7900点(3900,2000)',
oya: [ 3900, 3900, 3900 ],
ko: [ 3900, 2000, 2000 ],
error: false
}
"m,p,s,z" means "萬子,筒子,索子,字牌"
"1z-7z" means "東南西北白發中"
"0m" means "赤5萬"
自摸 & 栄和:
new Riichi('112233456789m1s1s')
new Riichi('112233456789m1s+1s')
副露:
new Riichi('1s+1s+123m55z666z7777z')
Dora:
new Riichi('112233456789m1s1s+d12s')
Extra Option:
new Riichi('1s+1s+123m55z666z7777z+d12s+trihk22')
| t | 天和/地和/人和 |
| r(l) | 立直 |
| i(y) | 一発 |
| w | w立直 |
| h | 海底摸月/河底撈魚 |
| k | 槍槓/嶺上開花 |
| o | 全local役有効 |
| 22 | 場風南自風南 |
場風自風:
1234=東南西北
default: 場風東自風南
new Riichi('112233456789m1s1s+1')
new Riichi('112233456789m1s1s+21')
new Riichi('112233456789m1s1s+24')
local yaku list:
Api
use-before-calc()
const Riichi = require('riichi')
const riichi = new Riichi('112233456789m11s+o')
riichi.disableWyakuman()
riichi.disableKuitan()
riichi.disableAka()
riichi.enableLocalYaku('人和')
riichi.disableYaku('大七星')
let result = riichi.calc()
向聴数牌理計算 lib
console.log(new Riichi('111222333m11p123z').calc())
Output
{
...
syanten: {
now: 1,
'1m': {},
'2m': {},
'3m': {},
'1p': {},
'1z': { '1p': 2, '2z': 3, '3z': 3 },
'2z': { '1p': 2, '1z': 3, '3z': 3 },
'3z': { '1p': 2, '1z': 3, '2z': 3 }
}
}