« 2007年5月 | トップページ | 2007年7月 »

2007/06/30

順目毎のダマ聴牌データ集計

採取したデータを順目毎に分類して集計してみた。

以下がその表とグラフ。(画像をクリックするとやや大きめの画像が表示されます。)
Dama_tbl_1
Dama_1


採取対象は先制良形聴牌。
なお、この集計での先制とは、
「誰も立直をかけていない状態。ダマ聴や鳴いて聴牌している他家がいても先制扱い。」

良形とは
「待ち牌が2種5枚以上の待ち(対象プレイヤー視点で見えていない牌を数えている。」

対象聴牌は
いずれの待ち牌でも出和了可能な役が付くものだが、フリ聴の聴牌もデータに含まれている。

グラフが、概ね自然な形になっていることから、データ数は足りていると思う。

私としては大体予想通りのデータという感じだが、人によっては「意外と和了率が低いなあ」と感じるかもしれない。
ちなみに、科学する麻雀のデータと和了率を比較したグラフは以下。
Dama_diff_1


無視できない差が付いているが、コレは恐らく「先制」の定義の違いによるものだろう。
今回の集計では他家が立直していないものを先制としたが、科学する麻雀では実際誰も聴牌していない状況をモデルにデータを取っていると思われる。
実戦で参考にするときは、相手の手牌状況から確実に不聴と判るときは科学する麻雀のデータを参考にし、そういった状況分けを考えないなら今回採取したデータを参考にすれば良いと思う。

今後は愚形待ちでのデータ、1順ごとのデータ、待ち牌種別ごとのデータなどをまとめた上で、
ダマ聴が実戦上役に立つと思われているケースについて考察を加えてみたい。

| | コメント (2) | トラックバック (0)

2007/06/26

いまさらながら科学する麻雀の疑問

せっかくなんで、大量にデータを取る予定、牌種別やテンパイ順目で状況分け可能な程度のデータが欲しいので、ヘタすると1ヶ月近くCPU回しっぱなしになるかも。

さて、MeaninglessXさんからの指摘を受けて、久々に科学する麻雀読み直し。
しかし、改めて読んでみると、いろいろと疑問が沸いてくる。
例えば、P154,P155のグラフだけど、「他家間の振込み合いの可能性が0%!?4人攻めなのに!?」とか、「ツモ:ロンの比率がほぼ1:4(和了時ツモ率が約20%)!?ツモ:ロン比率は、完全無警戒なら大雑把にいって1:3に近い値になると思うんだけど……」など。どういう方法で採取したデータなんだろうか?

恐らくは、P.64からのシミュレートプログラムの改造によるものだけど……
ちょっと想定する他家モデルの挙動設定が謎だな。

ただし、「ダマにする必要があるケースはほとんど無い」っていう結論は変化無いだろうから、重箱の隅突っつきにしかならないのかも知れない。

追記:指摘どおり、自分のツモ番が最後にくる影響で25%未満の数字になるということらしいです。

| | コメント (2) | トラックバック (0)

2007/06/25

まだまだデータ採取中

場合わけしない集計に関しては、ほぼ収束しているようだけれど、せっかくなのでいろいろ場合分けして集計できるようにモット大量のデータを取ってみる。
っていうか、次の作業に取り掛かるほどのアイデアが今無いし。

現状の集計状況

先制ダマテンパイ 3315回
ロン和了      1474回
ツモ和了      563回
放銃      334回
被ツモ      304回
他家振り合い    430回
--------------------
和了率 61.5%
被和了率 32.2%


うち、先制2種5枚以上の待ちは……

先制ダマテンパイ 2004回
ロン和了      1021回
ツモ和了      389回
放銃      187回
被ツモ      152回
他家振り合い    182回
--------------------
和了率 70.4%
被和了率 26.0%
(平均 2.09種6.96枚待ち。 平均テンパイ順目 8.28)

良形待ち(ここでは、対象プレイヤーに見えていない待ち牌が2種5枚以上)での和了率が70.4%ってのは概ね感覚どおりなのかもしれない。

最終的に、どうデータをまとめるかも考えないと……

| | コメント (4) | トラックバック (0)

2007/06/23

ダマ聴和了率中間集計

まだ、計測中だが途中結果を

先制ダマテンパイ数 797
ロン和了355
ツモ和了117
和了率 59.2%
------------
放銃数 85
被ツモ数 77
他家振込み合い 106
被和了率 33.6%
6/24 追記: 被和了率を間違って計算していましたので修正しました。

低いなー。7割程度あがれると思っていたんだが……

条件がいろいろ違うのでそのまんま比較するのは不適当だが、参考に、以前とった先制立直のときのデータだと以下の感じ。
和了率 53.5%
被和了率 32.6%


これだと、通常の状況で出和了出来るときに、ダマ聴にとる意味はほとんどなさそう。
ダマが有効なのは、せいぜいオーラスか南3局で点差が接近しているとき程度のように見える。
まだ、データ数が少ないようだから、もう少しデータ数とってからもう少し細かくデータをみてみる。


| | コメント (5)

ダマ聴和了率採取改造終了

デモモードで、一番手前のプレイヤーのみ、ダマで和了できるテンパイで安めが子の7700未満の場合、立直せずにダマにするように改造し、データをとってみる。

ダマ聴しているときに追っかけ立直がかかったときの降りる条件は、既存のアルゴリズムどおり。
(概ね、超クソ待ち、またはドラをつかんだときにオリ、それ以外は大抵ツッパ)
また、テンパイ待ちが変わってダマで上がれなくなる場合は集計からはずす。また、4面待ち以上も面倒なので集計からはずす。

この条件でデータを採取開始

| | コメント (0) | トラックバック (0)

2007/06/20

採るべきデータ項目

リーチとダマ聴でどの程度和了率に差がでるか、ゲームにログを入れて
データを採ってみる。採るべきデータ項目は以下にする予定。

親・子区分
ドラ待ち
追っかけ・先制区分
追っかけ時、先制立直の現物待ち
開始順目
終了順目
結果(ロン、ツモ、流局、放銃、被ツモ、他ロン)
収支点数
待ち種類
待ち枚数
和了牌
テンパイ後待ち変化有無
待ち牌1
待ち牌2
待ち牌3
待ち牌1の枚数
待ち牌2の枚数
待ち牌3の枚数

途中まで、ログを実装して動かしているけど、ダマ聴だと相当に和了率が高い感じ。
ダマが有効なケースは私が想像している以上にあるのかも。

| | コメント (0) | トラックバック (0)

2007/06/10

Version0.8.11出しました

天さんが指摘してくれた、特定条件で無駄な食い換えをする場合がある問題を修正したVersion0.8.11を公開しました。ダウンロードは右サイドのDOWNLOADボタンを押してダウンロードページからお願いします。

また、Vistaで動作させた方いましたら連絡くださると助かります。

| | コメント (5) | トラックバック (0)

2007/06/07

先に無意味な鳴きの修正を

天さんが連絡してくれた特定の条件で無意味な食い換えをする問題をする問題を優先して修正することに。
こちらで現象の再現を確認が済み。問題点が混一を狙って仕掛けたもののツモの流れから非混一色狙いに変更になったケースでの処理での考慮漏れであることが判明したところ。
どう直すべきかも大体検討は付いているけれど修正量はやや大目。

久々に混一がらみの部分のソースを見たけれどすっかり忘れてしまっていた。記憶だと3段階のモード(通常モード、混一様子見モード、混一決め打ちモード)に分けてたと思ったけれど、見直したら4段階のモードに分けていたんだな。

| | コメント (0) | トラックバック (0)

2007/06/05

ダマと立直の和了率の差を計測してみる

点数状況判断の材料にするために、まずは、門前で、ダマで出和了可能なテンパイをしたとき、立直した場合とダマにした場合でどの程度和了率に差がでるのかを、まったり麻雀のプログラムを使ってデータを取ってみたい。
こういったデータは東風荘などのデータからはなかなか取れないので、ゲームのアルゴリズムを使ってデータを取ってみる。もちろん東風荘やフリーの雀荘などの打ち方とゲームのアルゴリズムで差が出てしまうだろうけれど、まずは、たたき台としてデータを取ってみる。

| | コメント (4) | トラックバック (0)

2007/06/04

これから麻雀ゲームを作り始めようとする人に

ITProの地球に優しいアルゴリズムの連載で麻雀の役判定のアルゴリズムが紹介されてます。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070516/271225/?ST=develop&P=1
参考までに。

はてぶのブックマーク数をみるとこの記事を書いている現在で236もブックマークされている。
結構麻雀プログラムに興味がある人は多いのでしょう。

これから麻雀ゲームを作り始めようとする人に僭越ながらアドバイスを。

役判定プログラムは麻雀ゲーム作るとき最初のほうで作り始める人も多いでしょう。
そして多くの人は、はじめに作るときは性能を考えず確実に動作するものを作ろうとすると思います。
ですが、役判定プログラムの処理性能はかなり重要で、後々AIの強さに響いてきます。
また、役判定に限らず、麻雀ゲームを作っていると何度も処理速度の問題で悩まされ作り直しを余儀なくされることになると思います。
作り直しが利くように、最初の段階で、オブジェクト指向化を考慮した構造にしておいたほうが後々、作り直すとき、手間がかからなくて良いと思います。

* * *

ただねえ……。無駄に複雑にしてませんか?この連載のプログラム。
もっと、ずっとすっきりしたプログラムで作れると思うんですが。

たぶん、最初に完成したプログラムがあって、其れをネタに解説記事を書いちゃってるのが判りにくくしてる原因なんだろうな。

| | コメント (0) | トラックバック (0)

« 2007年5月 | トップページ | 2007年7月 »