eval7まだまだ作成中
まだまだeval7の作成中。
裏ドラと一発、ロンとツモの比率を考慮した和了点数を求めるロジックを作成した。
ツモ:ロンの比率は、第2超ランのデータをベースに、1:1.5にしている。将来的には、待ち牌の種類とスジになっているかなどを考慮して変更するようにしたい。
また、今は和了形を引き抜いているけれど、平和のように最後に積もった牌によって役が異なる場合があるので、
入れ替えた牌のそれぞれについて、最後に積もる確率を計算する必要がある。その確率を計算するプログラムをためしにRubyで書いてみた。
下のプログラムは3向聴(入れ替える牌は全部で4種類)で、場に見えてない牌がそれぞれ、2,4,3,3枚ある場合に、見えていない牌が2枚である牌で最後に和了形になる確率を求めるプログラム。
# 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;
| 固定リンク
この記事へのコメントは終了しました。
コメント
その節はどうも。
ロンアガリの可能性まで考慮にいれるとは・・・。
スーパーデジタルアルゴですね。
完成が楽しみですね。
頑張ってください。
投稿: 花 | 2005/07/27 06:05
ども。ロンを考慮するといっても、まだまだ、大雑把な計算をしてるだけです。徐々に良くしていきたいです。
投稿: kmo2 | 2005/07/28 00:13