(´・ω・`)文の構造や文法が理解できてなくて、出てくる単語の順序や頻度でふんわりと読解している人、結構いるよね




■概説
「なぜこのデッキは強いのか」と言う解説はあっても「なぜ優勝できたのか」と言う解説はない。その為、あたり運が良かったことによる偶発的な優勝と、そうでない優勝を区別できない。
両者を区別するためにはスイスドローのシミュレーションを行い、実態を調査する必要がある。

紙とペンでも出来ないことはないが、ソフトで組んだ方がお手軽なのでソフトを使おう。勘所は以下か?

・数ラウンド経過後の、いわゆる上位卓、下位卓におけるデッキ分布
・"最強"のデッキはあるのか?(青い方はないっておっしゃってたが、一応確認しよう)
 →優勝しやすいデッキ、ぐらいの認識で良い
・デッキ分布の違いと優勝デッキタイプの関係

なお、今回はプロトタイピングつーことでメモ書きレベル。


■変数
・デッキタイプ
デッキタイプは、他のデッキタイプに対する勝率を要素に持つ構造体として定義できる。次のようなデッキ相性マトリクスを考えればよい。

縦の横に対する勝率ABCD
A50703040
B30502560
C70755080
D60602050

デッキA-デッキAのようなミラーマッチの勝率は50%と言うことにしておく。


・プレイヤー
プレイヤーは、マッチポイント、対戦履歴、使用デッキタイプを要素に持つ構造体として定義できる。
いわゆるオポネントなどは、対戦履歴とマッチポイントを使って予選終了後に計算すればよい。
このあたりはスイスドローツールからコードを流用できるか?


詳細なのは本当に組む時で良いのでこの程度にしとこ。


■シミュレーション方法
1.マッチング
2.勝利判定

予選ラウンド、決勝ラウンドともに1と2の繰り返しに過ぎない。

予選ラウンドにおける1は、スイスドローで行う必要がある。決勝ラウンドにおける1はシングルエリミネーションで行う必要がある。
シングルエリミはともかく、スイスドローの実装はちょっとめんどくさい。ここも以前作ったスイスドローツールから流用しよう。

2については、予選決勝問わず乱数を使って判定を行う。戦うプレイヤー2人の使用デッキと上記したデッキ相性マトリクス、乱数を使えば容易に判定ができる。
乱数はショボい奴で問題ないと思うけど、ダメかな。どうかな。


■デッキ相性マトリクスの作成方法
既存のメタゲームを想定し、そこに当てはめていけばよい。
例を挙げると。

・1強の状態
・複数のTier1デッキが混在する状態
・Tier1は1つだが、Tier2が混在する状態

あたり。

実は以前にシングルエリミネーション大会のシミュレーションは行っており、そこでは以下のような結果が得られた。

・1強の状態
 →事前に想定されていないデッキが勝ちやすい
・複数のTier1デッキが混在する状態
 →下馬評通り、Tier1デッキが勝ちやすい
・Tier1は1つだが、Tier2が混在しておりTier1と言えども勝率が安定しづらい状態
 →結果が一定しない

多分これに近い結果が得られると思う。今回見たいのは上位卓、下位卓の動向なので良いが。

これ、やるやる詐欺になりそうだなー。

俺もやりたい!と言う人は下記を参考に。

スイスドローのマッチングをソフトで行う場合の考え方