ロックマンエグゼ3には、ミニゲームとしてギャンブルが存在します。ゲーム内で使えるお金を賭けて、勝てば賞金が貰え、負けると没収されるのですが、このゲームにはオートセーブ機能が付いていないため、負けた場合にリセットし、勝った場合にセーブすればお金がどんどん溜まっていく仕組みとなっています。
ここで問題なのですが、どのような運用をすれば効率よくお金が稼げるかという問題です。
0.セーブ、リセット、1.へ移行、のいずれかを選択します。
1.最初の賭け金となる参加料を支払います。
2.2つ以上の選択肢の中に当たりが1つランダムに存在します。選択肢の中から1つ選びます。
当選しなかった ⇒ 0.へ
当選した ⇒ 3.へ
3.当選した場合は賭け金が倍になり、そのまま続けるか、やめるかを選択できます。そのまま続けた場合は、その賭け金で再び2.を行います。やめた場合はその賭け金を賞金として獲得できます。
4.何回か連続で勝ち続けるとディーラーが破産し、強制終了となります。二度と同じ賭場でギャンブルができなくなり、金儲けができなくなるので、破産させないギリギリのラインを攻める必要があります。
なお、賭場は三種類あります。
【A】
参加料:100ゼニー(*1)
選択肢:2個(選択肢は固定です)
倍率:2倍(100ゼニーの賭け金で当選すると200ゼニーになります)
破産する連続当選数:6回(6回連続で当選すると破産するので、5回で終了する必要があります)
【B】
参加料:500ゼニー
選択肢:3個
倍率:3倍
破産する連続当選数:5回
【C】
参加料:1000ゼニー
選択肢:4個
倍率:4倍
破産する連続当選数:4回
以下、賞金を獲得するまでを1セットとして考えます。この1セットで消費した参加料の累計を累計参加料と定義します。賞金から累計参加料を引いた値がプラスのときを利益、マイナスのときを損失と定義します。累計参加料が多すぎてリセットした場合は累計参加料を0にし、そこから参加料を引いてゲームを再開します。
ゼニー(*1)
ロックマンエグゼのゲーム内における通貨です。
DQでいうゴールド、FFでいうギルです。
負けた金額をそのまま賭け金にすることで、勝った時に倍獲得し、長期的に必ず利益を得る方法を「マーチンゲール法」といい、ギャンブラーの間では有名(らしい)な方法があるのですが、今回はレートが固定なので使えません。
賭け金を$x$とし、当選確率を$p$とすると、倍率は$\frac{1}{p}$なので、賞金は$\frac{x}{p}$となります。このときの期待値は
$\frac{x}{p}・p=x$
利益は
$x-x=0$
お前…ホンマ…使えんわー…はーつっかえ!
改めまして、期待値よりも実数値の方が重要ということが分かりました。
今回のゲームで、あらかじめ以下のルールを決めておきます。
・破産させない範囲で、決まった回数を連続で当てたら即終了する。または1回当てた時点で即終了する。(連続当選数の閾値)
・一定額以上の利益を得た時点で終了する。または利益が出た時点で終了する。(利益の閾値)
・累計参加料が一定を超えたらリセットする。(リセットの閾値)
これらの変数を組み合わせます。例えば
・1回当てたら即終了する。累計参加料が10000ゼニー以上であればリセットする。
・利益が出るまで、または連続当選数が最大となるまで続ける。8000ゼニー以上の損失があればリセットする。
・10000ゼニーの利益が出るまで、または連続当選数が最大となるまで続ける。累計参加料が8000ゼニー以上であればリセットする。
など、様々な戦略が考えられます。
また、参加費を払った回数(以下、トライ数と定義します)、リセット数は少ないほど効率がよいといえるでしょう。(ギャンブルを始める時の会話でタイムロスになったり、リセットしてロックマンエグゼのタイトル画面まで戻るとタイムロスになったりします)
本当はAIを使いたいのですが、手っ取り早くプログラムを組んでみました。
想定している賭場は、レートが一番大きい【C】です。
【C】
参加料:1000ゼニー
選択肢:4個
賞金の倍率:4倍
破産する連続当選数:4回
所持金が無限にあるという想定の元で、以下の戦略をプログラムに運用させ、比較します。
運用1.当選した時点でやめる。累計参加料が4000ゼニーとなった時点でリセット。
運用2.利益が出た時点、または2連続で当たった時点でやめる。累計参加料が16000ゼニーとなった時点でリセット。
運用3.利益が出た時点、または3連続で当たった時点でやめる。累計参加料が64000ゼニーとなった時点でリセット。
それぞれの運用を100セット繰り返した損益とトライ数とリセット数を記録します。
1回だけでは分からないため、20回行いました
各セルは、(損益, トライ数, リセット数)を表します。
運用1. | 運用2. | 運用3. |
---|---|---|
(190000, 330, 40) | (253000, 649, 19) | (543000, 1632, 8) |
(199000, 306, 35) | (295000, 751, 17) | (442000, 1091, 6) |
(172000, 339, 37) | (246000, 791, 20) | (468000, 1259, 5) |
(187000, 366, 51) | (274000, 579, 12) | (415000, 988, 4) |
(194000, 335, 43) | (277000, 640, 15) | (364000, 1103, 7) |
(174000, 343, 39) | (276000, 667, 19) | (495000, 1033, 4) |
(177000, 418, 65) | (311000, 677, 13) | (352000, 1133, 6) |
(172000, 330, 34) | (290000, 793, 24) | (598000, 1329, 5) |
(205000, 336, 47) | (277000, 718, 18) | (533000, 1478, 7) |
(187000, 345, 44) | (216000, 740, 22) | (450000, 877, 4) |
(184000, 429, 71) | (283000, 544, 9) | (501000, 1199, 5) |
(200000, 341, 47) | (300000, 580, 13) | (553000, 1629, 10) |
(178000, 366, 48) | (271000, 660, 16) | (392000, 1612, 10) |
(188000, 293, 27) | (272000,1028, 35) | (403000, 1245, 7) |
(182000, 359, 47) | (236000, 684, 20) | (549000, 1587, 10) |
(187000, 378, 55) | (251000, 664, 18) | (360000, 1179, 7) |
(185000, 329, 38) | (283000, 858, 20) | (488000, 1533, 9) |
(177000, 307, 28) | (285000, 756, 17) | (442000, 988, 4) |
(193000, 321, 38) | (315000, 714, 18) | (343000, 1161, 6) |
(190000, 363, 51) | (291000, 579, 12) | (453000, 976, 3) |
運用1. | 運用2. | 運用3. | |
---|---|---|---|
平均 | (186050, 346.70, 44.25) | (275100, 703.60, 17.85) | (457200, 1251.60, 6.35) |
標準偏差 | (935, 34.03, 11.05) | (24675, 111.47, 5.49) | (74936, 245.73, 2.18) |
今回検証したソフトは『ロックマンエグゼ アドバンスドコレクション』で、ハードはNintendo Switchとなります。
ロックマンエグゼ アドバンスドコレクション
https://amzn.to/3pu0ILC
ここで重要になるのが、トライ数とリセット数の比で、実際に時間を計ってみると
リトライ・・・約6秒
リセット・・・約11秒
(ミスをして落とし穴に落ち、暗転した時を開始とし、選択肢を選ぶ画面が表示された時を終了とした時間を計測しています。)
もしハードがゲームボーイアドバンスであればリセットの時間がもっと長くなっていたことでしょう。
大雑把に「リトライ:リセット=1:2」、つまり「リセット=2リトライ分」として1リトライ当たりの平均損益を計算すると
運用1.$\frac{186050}{346.70+44.25*2}=\frac{186050}{346.70+88.50}=\frac{186050}{435.20} \fallingdotseq 427.50$
運用2.$\frac{275100}{703.60+17.85*2}=\frac{275100}{703.60+35.70}=\frac{275100}{739.30} \fallingdotseq 372.11$
運用3.$\frac{457200}{1251.60+6.35*2}=\frac{457200}{1251.60+12.70}=\frac{457200}{1264.30} \fallingdotseq 361.62$
単位を揃えたので、あとは比較するだけです。
運用1.の圧勝です。
以上
AIを使えば上記で考えた3つの変数をどのように定めた時が一番効率が良いのかが分かると思うのですが、そこまでの時間と労力を持ち合わせていないため、誰かに任せたいと思います。
所持金を無限としてロックマンエグゼ3でギャンブルをする時、参加料が1000ゼニーの賭場で効率が良い運用方法は
・ 1回の賞金を得るまでに払った累計参加料が4000ゼニーとなった時点でリセットする。
・利益が出た時点でセーブする。
を繰り返すこと。