« eval7作成中 | トップページ | eval7そこそこ完成 »

2005/07/25

eval7まだまだ作成中

まだまだeval7の作成中。

裏ドラと一発、ロンとツモの比率を考慮した和了点数を求めるロジックを作成した。
ツモ:ロンの比率は、第2超ランのデータをベースに、1:1.5にしている。将来的には、待ち牌の種類とスジになっているかなどを考慮して変更するようにしたい。

eval7-2


また、今は和了形を引き抜いているけれど、平和のように最後に積もった牌によって役が異なる場合があるので、
入れ替えた牌のそれぞれについて、最後に積もる確率を計算する必要がある。その確率を計算するプログラムをためしにRubyで書いてみた。
下のプログラムは3向聴(入れ替える牌は全部で4種類)で、場に見えてない牌がそれぞれ、2,4,3,3枚ある場合に、見えていない牌が2枚である牌で最後に和了形になる確率を求めるプログラム。

# index番目の有効牌を最後に引く確率を求める関数
# arrayはN種類の有効牌のそれぞれ見えていない枚数

def func1(array, index)
    val = 0;
    sum = 0;

    array.length.times do |i|
        sum += array[i];
        i += 1;
    end

    if sum == array[index] then
        return 1.0;
    end;

    array.length.times do |i|
        if i != index && array[i] > 0 then
            array2 = Marshal.load(Marshal.dump(array)); # deep copy
            array2[i] = 0;
            f = func1(array2, index);
            val += f  *  array[i] / sum;
        end
    end;
    return val;
end


array = [2, 4, 3, 3];
val = func1(array, 0);

p val;

|

« eval7作成中 | トップページ | eval7そこそこ完成 »

コメント

その節はどうも。
ロンアガリの可能性まで考慮にいれるとは・・・。
スーパーデジタルアルゴですね。
完成が楽しみですね。
頑張ってください。

投稿: 花 | 2005/07/27 06:05

ども。ロンを考慮するといっても、まだまだ、大雑把な計算をしてるだけです。徐々に良くしていきたいです。

投稿: kmo2 | 2005/07/28 00:13

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

トラックバック


この記事へのトラックバック一覧です: eval7まだまだ作成中:

« eval7作成中 | トップページ | eval7そこそこ完成 »