プライバシーポリシーの確認をお願いします。2020/08/14改訂 こちらです

本サイト内に存在するコンテンツは独自の試験や調査により作成されています。

モバイルブラウザにおいて表示に時間がかかります。ご了承ください

三暗刻を判定する時

今の実装は手牌とキー牌を合わせて一つの配列にした後、雀頭と各種面子に分割、役の判定を行っています。この処理の途中で指定した牌がツモ牌かロン牌か判断できる情報が消えています。こうなると三暗刻の判定に支障をきたします。

三暗刻というのは
七七七①①①1235566 でリーチ
5をツモったらリーチ、三暗刻
5をロンであればリーチのみ

七七七①①①1115688 でリーチ
4か5のツモはリーチ、三暗刻
4か5のロンであればリーチ、三暗刻

という条件を満たす必要があるのですが、これができません。
できないといつまで経っても話が進まないので少し変数を増やしちゃいましょう
MentsuGroupという雀頭と各種面子に分割された牌を持っているオブジェクトがあります。

  MentsuGroup* = object
    janto*:seq[Marjanhai]
    koutsu*:seq[Mentsu]
    shuntsu*:seq[Mentsu]

このオブジェクト内で任意の牌がツモ牌かロン牌などの判断ができればOKです。
どのメンバも根底にはMarjanhaiオブジェクトが存在していて、これを拡張するといいでしょうか

  Mentsu* = object
    list*: seq[Keyhai]

  MentsuGroup* = object
    janto*:seq[Keyhai]
    koutsu*:seq[Mentsu]
    shuntsu*:seq[Mentsu]

これでいけるかな!?

コメントを残す

メールアドレスが公開されることはありません。