Kurter's Workshop

かーたーによるドミニオンのシミュレーション

属州場のお金プレイ(Big Money)

とりあえず、一番簡単なところからです。

千里の道も一歩かーたー…(?)

 

 

お金プレイ、手で回すのは割と面倒なので、感覚としてはあまりわからなかったりします…まぁ、出た金量通りに買うしかない気もしますね…^^… 

 

 

とりあえず、結果を貼り付けます。

表は上から平均ターン数、8から30ターンで終了したゲームのそれぞれの積算回数(ただし、8ターン未満で終了した場合は8ターンに含み、30ターンの打ち切り条件に該当したものは30ターンに含んでいる(注追記:表の上の話でした。平均の算出には、7T未満はそれぞれのターン数として計算し、30T打ち切りに該当するものは31Tとして計算しています))、そして分散を表しています。

グラフはターン数毎の回数を表したものです。

f:id:Kurter:20190527213526p:plain

お金プレイ 4-3

f:id:Kurter:20190527214158p:plain

お金プレイ 5-2

 

初手の区別をしないとして計算すると、全体の平均は約16.81Tとなります。

よく聞くお金プレイの速度としては、17ターンくらい、というところなので、だいたいこんなかんじなのではないでしょうか。

平均を見比べる限りでは、初手のパスがそのまま1ターンの遅れとして現れているように思えますね。

 

 

アルゴリズムの詳細を示します。

お金プレイでは、アクションアルゴリズムは存在しません。

 

  'かーたーは辛うじて存在します

 

お金プレイの購入アルゴリズムは、以下のようになっています。

 

Function buyAlgorithmProvinceBM(i As Integer) As Integer

  Dim j As Integer 'プロシージャ名変更を楽にするため
  
  If i >= 8 Then
    If cardOwned(trnP, 2) >= 1 Then
      j = 12
    Else '金貨不所持なら金貨購入
      j = 2
    End If
    
  ElseIf i >= 6 Then
    j = 2
  ElseIf i >= 3 Then
    j = 1
  Else
    j = -1
  End If
  
  buyAlgorithmProvinceBM = j

End Function

 

購入アルゴリズムは、購入アルゴリズム指定関数経由で、そのターンの(手札)金量( i )を受け取り、購入物一種類の番号を返します。

この時、実際のカード等に該当するのは 0 以上であり、-1 は購入パスを表しています。

各番号は、1番が銀貨、2番が金貨、12番が属州を表しています。

また、上に記述していますが、新たな変数 j の宣言は必須のものではないものの、プロシージャの見た目の煩雑さを解消する目的と、プロシージャ名変更の際の手間を少なくする目的で導入しています。

 

アルゴリズムそのものにおいて特筆すべき点としては、8金以上が出た際、金貨を1枚も所持していないならば、金貨を購入するように設定しています。

これは、100回程度の試行においては効果が確認されています(→あまりない事象なので誤差に埋もれていてよくわからないです)が、現状は10000回の結果はありません。

 

 

(追記)とりあえず、金貨を所持していない8金で、属州を購入することにしたアルゴリズムで、10000回回してみたので、結果を貼っておきます。

速度をマイナスに導く要因としては、序-中盤に得られたはずの金貨を使用する機会を、何周にも亘って逸しているばかりか、それが0金の属州になってしまっているため、逆に複数回の属州購入機会を逃がす可能性が高まっていることが挙げられます。また、金量が偏りすぎて8金以上が出ていた場合、同一周回の別のターンの金貨購入もままならない可能性があり、そのターンの金貨購入の重要性がより高まっている可能性もあります。

速度をプラスに導く要因としては、単純に8金が出たという機会を最大限に生かせるということになります。平均が1.6金に達していなかったとしても、偏りでたまたま8金以上が出ることは多いです。無理に金貨を増やしたからといって、また偏りが起こる機会が、1ターンの損失に見合うだけ増えているとは言い切れません。それならば、8金の機会を生かし、金量は逐次投入していけばよいとも考えられます。また、折角金量を潤沢にしても、8金どころか、例えば11金以上出てしまった場合、それは金貨丸々の損失になってしまいます。このような過剰な偏りから考えても、8金の機会を逃してまで、デッキを強化する必要はないのかもしれません。

これまでは、なんとなく経験則から、マイナス要因の方が大きい、つまり、1枚は金貨を導入してからでないと、属州を買わない方がいいのではないか、と考えていました。

 

f:id:Kurter:20190601215052p:plain

お金プレイ 4-3 金貨なしの8金:属州購入

 

しかし、これを見る限りでは、両者に決定的な差はない、ということになりそうです。

なお、コイントークンの残数平均の出力値は、本来ならあり得ないですが、今回の測定の本旨である、「金貨所持のない8金」が何回訪れたのか、その回数を、使用していないコイントークンの変数で代用して計測し、出力したためのものです。10000回の計測ですので、1019回あったことになります。

簡単のため、1試行1回(金貨が無い状態が継続されるため、2回以上起こる可能性も十分に考えられる)としても、9割のゲームはそもそも無関係です。そのため、それらの関係のないゲームのブレがノイズとなり、結果が見えにくいというのはあります。

ただ、金貨のない8金、の想定が、何ターンに起こってもおかしくないため、モデルケースを設けて行うことが適切か、判断しにくいということがあります。

このあたりは、測定方法も含め、考えていく必要がありそうですね…(以上追記)

 

 

 

あんまり鳥和えるのはかわいそうですが、とりあえず以上です。