適当に垂れ流すことにした。

適当に垂れ流すことにした。

といっても特別書くことなんてないので作成中の麻雀AIのこととか。
卓側の処理は配牌からツモ打、副露、立直、和了までの処理を個別にざっくり書いたところ。
AI側は取り合えず手牌から不要牌を選択するだけの処理を作った。簡単に内容書くと

1.手牌の向聴数を計算する
2.手牌から一枚捨てる
3.山牌から向聴数+1枚の牌(和了まで)の組み合わせをツモる
4.手順3の各面子構成(多牌しているので複数ある)の和了点を計算する
5.手順4の中の一番高い点数を手順2の牌を捨てた場合の総点数に加算する
6.手順3〜5を山牌中から重複のない全通り繰り返す
7.手順2〜6を手牌の全通り繰り返す

ただの力技だこれ。
手順5の集計の仕方がいわゆる和了期待値の求め方とは
全然別物なんだけど取り合えずこれで。
イメージとしては↓を最大七ツモ先までやる感じ。
http://www.comjong.com/20040913.html
処理の共通化とか向聴数計算のテーブル化とか枝狩りとか頑張ってみた。
向聴数テーブルはあらさんの↓とほぼ同じ。自分で計算したら死ぬかと思った。
http://mahjong.ara3.net/etc/shanten/shanten8.htm
配牌は最悪六向聴だから七ツモ先まで計算が間に合えばAIとして使えるはず。
計算量多そうな牌姿を色々試してみて、CPU Core2Duo 1.2GHz、メモリ1GBで
遅いケースでも0.5秒くらいに収まってるので多分大丈夫。だと思う。

あとはてな記法とかよく分かりません。すいません。