このブログ内を検索可能

2024年6月26日水曜日

マジカルマインシミュレーション(1) 初期配置データ化とグループ化

カジプロのブラックジャックでは勝てないことも分かったので、テキサスホールデムで他プレイヤーに勝ちまくる作戦を考える前に、少々息抜きでマジカルマインのペイアウト率のシミュレーションを行う。

プログラムなどはいずれ動画化してアップロードする可能性もある。アニマ8のロケテ動画を挙げるものは多く、我はわざわざ川崎まで新幹線で遠征したがあまりプレイしていないので撮れ高はそこまでない。全消しもなければファンタジーJPもない。(ファンタジーJPCは見れて他の人のJPCは結構見れてBGMも堪能できた。なお我はそこそこWCには行ったがJPCには一度も行かなかった)

なおここで注意すべきことは、初期配置とボール入賞番号が与えられたからといって一意に結果が決まるわけではないという点で、その理由はオッズアップがどこの宝箱につくかわからないからである。

しかしながら最終的な配置や全消し率は計算できるので、それらも計算しようと思う。

なおこのプログラムはビンゴガーデンやビンゴファームのようにそこまで簡単ではない。しかしアニマドロップほど難しくはない。かつてアニマ5の通常ゲームをことごとく再現した者にとってはマジカルマインのシミュレーションくらいはたやすい。はず。


ではまず初期配置をデータ化する。今回は赤=1、緑=2、青=3、紫=4として処理し、番号もあわせて格納した6*9*2=108個のデータを作成する。


そして肝心のグループ分けについては以下のモデルを考える。

〇〇〇△△

××〇△〇

×〇〇△〇

×△〇〇〇

これをグループ分けしたい場合どうすればよいか。以前アニマドロップのプログラム構築の際やったのだがだいぶん忘れたので考え直す。

まずグループごとにどこまで続くかをチェックする。

例えば左上に1とつけたならば、その周囲を探索していき隣り合っている番号をチェックする。すなわち1→2→3→8→13→12,18→23→24→25→20→15のように進展する。これを繰り返し、新しいグループ1の所属が増えなくなればグループ分け終了である。

すなわち

1 1 1 0 0

0 0 1 0 1

0 1 1 0 1

0 0 1 1 1

のようになる。

次にグループ1に所属していないもので最初のものを2とつけて探索。

1 1 1 2 2

0 0 1 2 1

0 1 1 2 1

0 0 1 1 1

となる。以下これを繰り返すのみ。これによりグループ分けが完了する。

なお初期配置のグループ分けおよび落下後のグループ分けで、その操作は非常に多く使う。

この手法を用いて上の画像をグループ分けしたものが以下。

{{1,2,2,2,3,3},{1,2,2,2,3,3},{1,4,4,5,3,6},{1,7,4,5,3,6},{1,7,4,5,6,6},{1,7,4,6,6,8},{7,7,9,10,8,8},{7,9,9,10,8,8},{9,9,10,10,10,10}}

確かに10個のグループに分けられていることが分かる。

なお例えば適当に、かなり複雑なグループ分けをしてみると…

〇〇△△××

〇△×△△×

〇×〇〇△×

〇〇〇△△×

〇×△△×〇

〇××××〇

〇×△△×〇

〇×△〇×〇

〇〇〇〇〇〇

上は通常の配置規則を逸脱しているがややこしい例を出すには最適。これを先ほどのプログラムに従ってグループ分けさせると

{{1,1,2,2,3,3},

{1,4,5,2,2,3},

{1,6,1,1,2,3},

{1,1,1,2,2,3},

{1,7,2,2,7,1},

{1,7,7,7,7,1},

{1,7,8,8,7,1},

{1,7,8,1,7,1},

{1,1,1,1,1,1}}

となり、入り組んだ形でも確かにグループ分けできていることが分かる。