麻雀役判定方法
麻雀役判定方法を説明します
手牌インスタンスを生成
和了型の判定方法 を参考に手牌インスタンスを生成します
int[] tiles = {
0, 2, 2, 2, 0, 0, 0, 0, 0,
0, 0, 2, 0, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0
};
MahjongTile last = MahjongTile.M4;
hands = new MahjongHands(tiles, last);
役判定させる
生成した手牌をMahjongクラスのコンストラクタ引数として入力します
calculate()を実行することで役判定を実行します
int[] tiles = {
0, 2, 2, 2, 0, 0, 0, 0, 0,
0, 0, 2, 0, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0
};
MahjongTile last = MahjongTile.M4;
hands = new MahjongHands(tiles, last);
mahjong = new Mahjong(hands);
mahjong.calculate();
状況が絡む役は判定出来ません
例えば、天和/リーチ/嶺上開花/ドラ/自風牌などの
状況が絡む役の判定は出来ません
今後のバージョンをお待ちください。
判定した役を取得する
getNormalYaku()もしくはgetYakuman()により、
判定された役を取得します
int[] tiles = {
0, 2, 2, 2, 0, 0, 0, 0, 0,
0, 0, 2, 0, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0
};
MahjongTile last = MahjongTile.M4;
hands = new MahjongHands(tiles, last);
mahjong = new Mahjong(hands);
mahjong.calculate();
List<MahjongYakuEnum> yakuList = mahjong.getNormalYakuList();
for (MahjongYakuEnum mahjongYakuEnum : yakuList) {
System.out.println(mahjongYakuEnum.getJapanese());
}
このプログラムの出力は以下のようになります
一盃口
平和
タンヤオ
Updated less than a minute ago