見出し画像

<2021年版>シミュレーションにより墓地退化の最適な構築を探索する①


最近、墓地退化が隆盛しているらしいと知り、ちょこちょこvaultを触ったりしてました。一時期墓地退化に熱中していたこともあり、この状況は個人的に喜ばしいです(退化のパーツだけでも買おうかな。。)

そこで、墓地退化使用者のさらなる活躍のために、以前記事にもしていた内容のバージョンアップをして最適な構築について考察しました。

墓地退化のメインムーブを成功させるためには4種類のコンボパーツを揃える必要があります。しかし、それぞれのパーツには2~3種類程度の候補が存在するため、採用枚数は4~8枚(または4~12枚)の間でばらつきます。

この枚数の幅があるなかで、コンボパーツの枚数をどのように配分すればこのコンボが最も効率的に成功するのか。これを知ることは、フィニッシャーの4ターン目着地を効率的に成功させる上で重要です。(※言うまでもないですが、コンボパーツは以下の4種類:①ルーター(エマージェンシータイフーンなど);②墓地進化(デスマーチなど);③剥がし呪文(落城など);④フィニッシャー(バルカディアnexなど))

バレッドゥが出たときにもツイッターで僕は騒いでいた記憶がありますが、最近は更にエマージェンシータイフーンの単色ツインパクトが出たらしく。であれば、2ターン目にルーターを唱え、3ターン目にもルーターを唱えるということも、より頻繁に起こりうるわけです。

2ターン目からルーターを引いた場合、3ターン目に引くルーターを引き込む確率も高まります。そして、ルーターを多く使えれば、他のコンボパーツを引く確率も高まります。このことを考慮すると、押しなべて「コンボパーツは4種類だ」と言っても、実際のところ、ルーターの重要性は特に高いのではないかと推測されました。

そして、その重要性はどれくらい他のコンボパーツより高いのか?他のコンボパーツの枚数を減らしてまでもルーターを多く入れるべきなのか?

この記事ではこれに対して回答を用意しました。ただし、メタカードの枚数とかはその都度微妙に調節すべきものだと思います。ここで示すのはあくまで、コンボが成功するために必要なパーツ配分についてです。

-------------------------------------------------------------------------------------

それでは具体的な計算に入ります。

ここでは、デッキにクロック3枚、ヴァイモデル3枚、バイケン3枚は確保したいという状況を想定します(この前提条件は地域のメタゲームに合わせて変更してください)。したがって、コンボパーツに割ける最大枚数は31枚です。

ここで想定されるコンボパーツの枚数配分は、

(①,②,③,④)=(8,8,8,7), (9,8,7,7), (10,7,7,7), (11,7,7,6), (12,7,6,6), (13,6,6,6), (14,6,6,5), (15,6,5,5), (16,5,5,5)

が候補として挙げられると思います(①~④は以下の通り:①, ルーター;②, 墓地進化;③, 剥がし呪文;④, フィニッシャー)。

コンボ成功におけるルーターの重要度が高ければ、一番最初の(8,8,8,7)よりは、それよりもルーターの枚数の多い(9,8,7,7)などの方が4ターン目に成功する確率は高くなるかもしれません。かといって(16,5,5,5)なんかはルーターを増やしすぎで、ルーターばかりが手札に来て、かえって他のコンボパーツを揃えにくくなるということも起こるかもしれません。

それではシミュレーションしてみます。せっかくなので、とても人力では試せないような回数をやってみます。10万回デッキをプレイしたときに、4ターン目にコンボが成功する回数を求めます。一体どれだけの確率で成功するのでしょうか。

コードは以下になります。

#n,試行回数
#a,先攻なら5,後攻なら6
#k1,ルーター(2枚引くやつ)
#k2,墓地進化
#k3,落城系
#k4,フィニッシャー
res <- function(n, a, k1, k2, k3, k4){
   success <- 0
   factor1 <- 0
   factor2 <- 0
   factor3 <- 0
   factor4 <- 0
   
   for(i in 1:n){
     num <- 0
     hand <- num
     t.deck <- c(1:40)
     
     #a枚引く
     for(j in 1:a+1){
       num[j] <- c(sample(t.deck,1))
       t.deck[num[j]] <- NA
       t.deck <- na.omit(t.deck)
       hand <- c(hand,num[j])
     }
     
     factor1 <- length(hand[hand>=1&hand<=k1])
     
     #2t目にルーター引けてるか引けてないか分岐
     #引けていた場合
     if(factor1>=1){
       num <- c(sample(t.deck,3))
       t.deck[num] <- NA
       t.deck <- na.omit(t.deck)
       hand <- c(hand,num)
       
       #3t目にさらにもう1枚ルーター引けてるか引けてないか分岐
       #もう一度定義
       factor1 <- length(hand[hand>=1&hand<=k1])
       if(factor1>=2){
         num <- c(sample(t.deck,3))
         t.deck[num] <- NA
         t.deck <- na.omit(t.deck)
         hand <- c(hand,num)
       }else{
         num <- c(sample(t.deck,1))
         t.deck[num] <- NA
         t.deck <- na.omit(t.deck)
         hand <- c(hand,num)
       }
       #4t目に各要素揃っているか
       factor2 <- length(hand[hand>=k1+1&hand<=k1+k2])
       factor3 <- length(hand[hand>=k1+k2+1&hand<=k1+k2+k3])
       factor4 <- length(hand[hand>=k1+k2+k3+1&hand<=k1+k2+k3+k4])

       if(factor1*factor2*factor3*factor4>=1){
         success <- success + 1
       }
       
     #2t目にルーター引けていなかった場合(factor1<=0の場合)
     }else{
       num <- c(sample(t.deck,1))
       t.deck[num] <- NA
       t.deck <- na.omit(t.deck)
       hand <- c(hand,num)
     
       #3t目にルーター引けてるか引けてないか分岐
       #もう一度定義
       factor1 <- length(hand[hand>=1&hand<=k1])
       if(factor1>=1){
         num <- c(sample(t.deck,3))
         t.deck[num] <- NA
         t.deck <- na.omit(t.deck)
         hand <- c(hand,num)
       }else{
         #ルーターを1枚も引けていない場合、成功しない
         num <- c(sample(t.deck,1))
         t.deck[num] <- NA
         t.deck <- na.omit(t.deck)
         hand <- c(hand,num)
       }
       #4t目に各要素揃っているか
       factor2 <- length(hand[hand>=k1+1&hand<=k1+k2])
       factor3 <- length(hand[hand>=k1+k2+1&hand<=k1+k2+k3])
       factor4 <- length(hand[hand>=k1+k2+k3+1&hand<=k1+k2+k3+k4])
       
       if(factor1*factor2*factor3*factor4>=1){
         success <- success + 1
       }
     }
     
   }
   return(success/n)
 }

以下に、各配分での成功確率を示します。

(①,②,③,④)=(8,8,8,7)

res(100000,5,8,8,8,7)
[1] 0.55345

(①,②,③,④)=(9,8,7,7)

res(100000,5,9,8,7,7)
[1] 0.56935

(①,②,③,④)=(10,7,7,7)

res(100000,5,10,7,7,7)
[1] 0.5812

(①,②,③,④)=(11,7,7,6)

res(100000,5,11,7,7,6)
[1] 0.5738

(①,②,③,④)=(12,7,6,6)

res(100000,5,12,7,6,6)
[1] 0.56179

(①,②,③,④)=(13,6,6,6)

res(100000,5,13,6,6,6)
[1] 0.55109

(①,②,③,④)=(14,6,6,5)

res(100000,5,14,6,6,5)
[1] 0.51778

(①,②,③,④)=(15,6,5,5)

res(100000,5,15,6,5,5)
[1] 0.48814

(①,②,③,④)=(16,5,5,5)

res(100000,5,16,5,5,5)
[1] 0.45739

グラフにすると、下の図のようになりました。きれいにルーター10枚のところで上に凸となっていますね。

画像1

(注:y軸は100000回中の4ターン着地成功回数です。)


推測の通り、ルーターは他の3種類のパーツよりも重要性が高そうです。4種類のパーツを同じくらいの枚数にするのではなく、(10,7,7,7)とか、そのくらいの配分でデッキを作ってやるとコンボをよく成功させられる、ということが分かりました。やはり2ターン目にもルーターを打てる、ということが強く効いているんでしょうかね。

構築例:

画像2

(闇の枚数とかアルモモを考慮してたらエマタイの5~8枚目抜けた...!!)


ちなみに、CS入賞報告などで見かけるような、ルーターとフィニッシャーの枚数が多くてゴワルとエアヴォが1枚ずつみたいな構築の確率も計算してみました。

(①,②,③,④)=(11,5,5,10)

res(100000,5,11,5,5,10)
[1] 0.50484

同じ31枚を使っても、②~④を均等に配分した場合よりも高いわけではなさそうです。ただ、バルカから出す選択肢を増やす点では、フィニッシャーが増えるのも致し方なさそうです。

その他、コメント等いただければ対応します。
先攻でもこれだけ決まるってやばいですね

-------------------------------------------------------------------------------------

今回のシミュレーションは先攻を取った場合の4ターン目での成功率です。ですので、後攻を取った場合やイワシンを挟んだ場合などはもっと成功率は上がりそうです。

ちなみに後攻だと

res(100000,6,10,7,7,7)
[1] 0.67548

で67.5%です。一気に上がりますね。


いずれにしても、60~70%で安定して4ターン目にバルカディアが飛んでくるのはすごい状況です。長らく不遇の時代を過ごしてきたから、今くらい楽しい思いをしても良いよね。。手元のデスマーチも喜んでいます。


CS10万回やる人なんていないし、58%とか56%の違いは誤差といえば誤差。全部光ってる構築の方がかっこよくて良い。落城良かったね…!





画像3

(これだと全部光る)

この記事が気に入ったらサポートをしてみませんか?