麻雀の和了形判定について
Posted: 2010年4月14日(水) 19:14
こんばんは、お久しぶりです
社会人になって時間も休日のごく一部しか使えずなかなかプログラミングする時間がとれないのですが
現在数人で二人麻雀ゲームを作っています
メインプログラマとして参加しており、一応お互い18枚ツモって切るという部分までは作りました
(相手は手牌からランダムに切るだけ)
そこで今から山場のひとつ、役判定を作ろうと思い、まず和了形の判定を行おうと思ったのですが苦戦しています
参考にしているのはhttp://www5f.biglobe.ne.jp/~kenmo/progr ... agari.htmlのサイトです
ここで思ったのですが、先に順子より刻子をとった場合、和了形が取得できない場合があると思います
例1)一一一一二二三三三三四四五五
例2)一二二二三三三四四四五六六六
どうすればどのような形でも和了形を取得できるでしょうか
今考えているものは頭を決定し、刻子1個の場合、2個の場合みたいなことを繰り返し、残りは順子、
あがれてなければ頭を変更して同じことを繰り返す、という感じですがどうもすっきりと作れず…
これ以外にもっとオススメの和了判定方法がありましたらそちらもお願いします
また、向聴数も取得できたら、と考えています(七対子、国士は除いて)
牌クラスからは一応牌の種類(萬子、索子、筒子、字牌、三元牌、風牌、老頭牌、中張牌、緑牌、数字など)が取得できます
開発環境はVisual C++ 2008 EEです
よろしくお願いします
社会人になって時間も休日のごく一部しか使えずなかなかプログラミングする時間がとれないのですが
現在数人で二人麻雀ゲームを作っています
メインプログラマとして参加しており、一応お互い18枚ツモって切るという部分までは作りました
(相手は手牌からランダムに切るだけ)
そこで今から山場のひとつ、役判定を作ろうと思い、まず和了形の判定を行おうと思ったのですが苦戦しています
参考にしているのはhttp://www5f.biglobe.ne.jp/~kenmo/progr ... agari.htmlのサイトです
ここで思ったのですが、先に順子より刻子をとった場合、和了形が取得できない場合があると思います
例1)一一一一二二三三三三四四五五
例2)一二二二三三三四四四五六六六
どうすればどのような形でも和了形を取得できるでしょうか
今考えているものは頭を決定し、刻子1個の場合、2個の場合みたいなことを繰り返し、残りは順子、
あがれてなければ頭を変更して同じことを繰り返す、という感じですがどうもすっきりと作れず…
これ以外にもっとオススメの和了判定方法がありましたらそちらもお願いします
また、向聴数も取得できたら、と考えています(七対子、国士は除いて)
牌クラスからは一応牌の種類(萬子、索子、筒子、字牌、三元牌、風牌、老頭牌、中張牌、緑牌、数字など)が取得できます
開発環境はVisual C++ 2008 EEです
よろしくお願いします