« 暗槓の処理作成 | トップページ | 小明槓作成完了 »

2005/05/11

ちょっと寄り道して

次は小明槓 の作成処理だがちょっと寄り道。モンテカルロ式のアルゴリズムで打牌を決定する方法がゲームに組み込めるかどうかを検討してみた。ここでいうモンテカルロ方式とは、要するに、今の手牌に流局までの回数分ランダムに牌を加えていって(この時点では牌を捨てないで多牌状態にしておく)その状態で和了形になっている形を抜き出すことで必要牌と不要牌の点数付けを行なう方法のこと。
この方法は過去に2ちゃんねるの麻雀板で実験している人がいた。その人が作ったプログラムはEXCELのシートで動作するVBAだったこともあり、とてもゲームに組み込める処理時間内には終わらなかった(10分以上かかっていた)。
C++で書いた場合どうなるか、果たしてゲームに組み込めるだけの速度が出せるのか?
もし可能なら今のアルゴリズムの欠点である向聴数が変わらない手変わりの考慮についてある程度解決するかもしれない。すでに今まで作ったプログラムのパーツを組み合わせれば作れるのでテストプログラムを作ること自体は簡単。気になっていたので簡単にテストプログラムを作ってみた。

結果としては、ゲームに組み込めるだけのスピードは出せなかった。ランダムに処理するため、ある程度の試行回数(5000回程度)は繰り返したいのだがさすがにその回数を1秒以内に処理することは難しそう。
手変わりを考慮するアルゴリズムについては別の手段を考えないといけないだろう。
まだ、いくつかアイディアはあるのでまた時期を見てためしてみたい。

|

« 暗槓の処理作成 | トップページ | 小明槓作成完了 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: ちょっと寄り道して:

« 暗槓の処理作成 | トップページ | 小明槓作成完了 »