*All archives* |  *Admin*

<<05  2017/06  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30  07>>
現状報告2
前回、頭で考えたことを文にしてみたわけだが・・・。改めて考えてみると「これは極めて死ねる企画だ」と気づいてしまった。

問題点
・順子の牌効率までしっかり考えてやると、鳴きの影響も無視できないし、先制リーチ者の牌姿がほんとは「テンパイ」してないという誤差も気になってしまう。
・鳴きとか順子の牌効率まで考えると思考ルーチンが麻雀ソフトが1本できるくらいの規模になりかねない。
・よってプログラミング初心者のあたしにとっては何年かかるかわからんぞ。

というわけでわずか数日で方針転換。代わりにうまい(?)と思われる改善策を思いついた。

最も難しいのは↑で書いたように「無条件時の牌効率」である。逆に先制リーチ後であれば、普通は全ツか降りのどっちかだから打牌の選択はずっと容易い。

よって「先制リーチの瞬間の場況」が定まれば、後は単純な思考ルーチンで打牌させ、多数回の擬似麻雀(擬似とはいえ従来と比べるとちゃんと牌1枚1枚を考えてる分、より実戦に近いのではないかと思われる。)を打たせて、状況判断の優劣を考えることが出来る。また、副産物としてリーチに対する他家の挙動も詳しく分かるであろう。

すると残る問題は「先制リーチの瞬間の場況」を定めることである。これについてはまだ詳しくは考えてないが、リーチ者(聴牌)の牌姿、自分(一向聴)の牌姿、他家の牌姿、捨て牌の4種類を順目ごとに実戦牌譜から傾向を読み取って、そこから確率的に場況を定める方針。とりあえず初めての試みで「無条件時の牌効率」ほどではないが、それなりに難しそうのでそれぞれの牌姿とかは独立として決めてしまうのだろう。改善は後でやればいい。

やや不安なのは今持ってる自分の牌譜が傾向を読み取れるほど十分な試合数なのか?ということ。特に4つの中では自分の牌姿、つまり先制リーチ時に一向聴となってる人の牌姿が一番限定的で問題だろうか。とりあえずやってみないとわからない。

いずれにしても牌譜から実際に麻雀を打たせるだとか、手牌をパーツに分けたりとかして聴牌とか一向聴とかを判定する関数を作るだとか(私にとっては)そこそこ難しそうな課題はあるので、何年とかはかからないにしても前みたいに1週間とかでほいほい結果を出したりとかいうことはできないだろう。分かったことがあれば小出しでも更新するつもりではあるが、読んでくれている方たちにはのんびりと待っていただきたいものです。
スポンサーサイト

コメントの投稿

Secret
(非公開コメント受付中)

コメント

プロフィール

nisi5028

Author:nisi5028
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
フリーエリア
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード