GEN MUTO'S HOMEPAGE > Cell_雀公式サイト > 不定期コラム

Cell_雀 不定期コラム 第三十三弾!
 
 
強い麻雀ゲームをつくろう!
 
  
 
毎日どえりゃー寒いっすねー。
 こんな寒い冬を送るのは何年振りでしょう。


ドキドキCクラブ © GEN MUTO

 
 
 前回のコラム「麻雀は数字の並び替え」で和了ルーチンの説明をしましたが、今回は和了ルーチンができるとどんなイイことがあるのかについてお話します。

 和了ルーチンができると一体どんなことができるのでしょう?
 「和了を判定できる!」
 これはあったりまえですが…他にもっといろんなことに応用できるんですよ♪

 代表的なのがテンパイ判定とリーチ判定です。
 実は和了ルーチンさえ完璧なら、この二つはあっという間に作れちゃうんです。
 ではどうやってテンパイ&リーチ判定させるのでしょうか?

 まず流局時のテンパイ判定ですが、これは簡単です。
 流局時、各家のもとには和了できなかった手牌が13枚残っています。
 そこに14枚目の牌を付け加えます。全34種類の牌を一回ずつ和了判定させ、そのうち一回でも和了していればそれはテンパイということになります。

 具体的にはFor〜Nextで34枚の牌全てをループさせ一牌づつ和了判定を行ないます。TRUEが返ってくれば、その手牌はテンパイです。逆に34枚全てのパターンでFALSEになれば、その手牌はテンパっていません。
 ね、意外と簡単でしょ?

 リーチ判定はこれより少し複雑になります。
 リーチ判定の時は手牌が14枚あります。この中からどれをきったらリーチがかけられるのかを判定させなくてはなりません。

 この場合はFor〜Nextを二重ループさせます。
 まず、手牌の左側から一枚ずつ手牌を抜いていきます。当然手牌は13枚になりますね。そしたら先ほど同様34枚全ての牌で和了判定を行ないます。
 もし和了していれば、その牌を捨てればリーチがかけられる(テンパイできる)ということになります。
 もし和了パターンが見つけられなかった場合、先ほど抜いた牌をひとまず戻します。そしてその右隣の牌を再び一枚抜いて…とこれを左側から右端まで14回繰り返します。
 一度でも和了パターンが見つかれば、リーチができる(テンパイ)ということになりますし、和了パターンが一つも見つけられなかった場合、リーチができない(ノーテン)ということになります。

 実際この方法でやると、たくさんのリーチ候補牌が見つかりますので、その中でも特に和了しやすく点数が高くなる捨牌を判定させるわけです。
 ただこの方法、結構時間がかかるので最初から最後までこれをやっちゃうと遅くてゲームになりません。

 で、Cell_雀もそうですが、多分他の麻雀ゲームでもテンパりそうになったときだけこのルーチンをつかってるみたいです。
 コンピュータの捨牌速度がぐっと遅くなったなら、そのうちリーチをかけてくるサインです(笑)。

 麻雀ゲームの強弱にはこのリーチ判定が大きくかかわってきます。
 もちろんリーチさせずにダマで狙わせるケースもあるでしょう。

 Cell_雀ver2.80で新型思考ルーチンの搭載がほぼ完了しました。
 昨今、多くの開発者が最強の麻雀ゲームを開発しようと躍起になっています。
 特に最近ではデータ重視の傾向が強いみたいです。

 でも麻雀のような複雑なゲームがデータを集めるだけで果たして強くなるのでしょうか?
 最強麻雀をうたったソフトも試してみましたが、強さは正直イマイチでした。

 麻雀ゲームは一局ごとの評価ではなく半荘単位での強さを考えていかないとどうにもなりません。
 各家の得点状況やトップとの差、オーラスまであと何局かなど、どれも重要な要素です。
 牌の期待値程度のデータで本当に最強麻雀が作れると考える開発者がいるとしたらそれは愚の骨頂です。
 データがゲームを強くするのではなく、アルゴリズムがゲームを強くするのです。

 Cell_雀もがんばって最強麻雀を目指します。みなさん応援してくださいね!
 
 
 

>> 次の話にすすむ