Kurter's Workshop

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

とりあえず注釈を移設しておく場所

 とりあえず結果を羅列しておく場所がまた長くなってきたので、脚注を分割しておきます。

 

 

 

注1:船着き場 Guildhall において、獲得したコイントークンを即座に使用できるようになっていたので、それが不可能なようにした。基本的には、属州→銅貨→属州の順番で買い、トークンが0余りのパターン以外では、あまり大きな影響は及ぼさないはず。

 

注2:鍛冶屋大聖堂において、一番最初に検証した初手4-3の鍛冶屋-大聖堂では、2金以下の銅貨購入を導入していなかった。購入パスが発生することの影響が、購入1回分だけ緩和されていたためか、詰み状態に陥ったゲームはなく、そのままの値を採用している。次に検証した3-4の大聖堂-鍛冶屋では、10000回中数回、詰み状態に移行してしまったため、銅貨購入の必要性に気が付き、以降導入している。

 

注3:鍛冶屋 名品 (6金で名品購入) において、1回だけ銀貨がない状態で銀貨購入していた。それ以降リシャッフルが起こらないゲーム終盤のため影響がなく、値をそのまま採用した。

 

注4:商人ギルドステロについて、一部修正したため、再試験を行った。商人ギルドがプレイされている場合、使用した2トークンは即座にペイバックされる。このため、購入時の判断材料としてのコイントークン数は、商人ギルドがプレイされていない場合と比較して、2個多いと考えることができる(ただし、コイントークンが不足して、事前に払えない場合は別に考えなくてはならない)。オリジナルの商人ギルドステロでは、この部分を考慮し忘れていたため、新しく導入し、再試験した。基本的には早くなると思われ、4-3では多少改善したが、5-2ではほぼ違いが見られなかった。また、これに伴って、以前の商人ギルドを使用している全ての試験について、多少の誤差が生じることが予想される。

 

注5:魔除けステロにおいて、以前の魔除け(初手魔除け2枚のステロで使用)には、プレイ時の行動判断に使用する金量に、持続された魔除けのコインを含めないミスがあった。このため、この点を修正した上で再試験を行ったところ、ターン数の大幅な改善が見られた。持続効果処理においては、プレイされる魔除けが取るであろう選択を見越した上で選択を行っているので、例えば6金において両方が+1金の選択ができない、7金において両方が+1金の選択をしてしまう等の不都合が生じていたと思われる。

 

注6:物乞いGuildhallの5-2においては、デッキの2周目に最初の物乞いを使用した時、3コイントークンを得ることになる。この3トークンを使用して属州を購入することはできるが、物乞いを追加で購入して次の周回から属州購入とすることも考えられる。このため、6金時の属州1枚目の購入条件として、コイントークンが3枚のものと、4枚のものとを比較することにした。

 

注7:Pageant(野外劇)BMにおいて、当初、終盤(ここでは属州残り2枚以下)の3金、6金でもそれぞれ銀貨、金貨を購入してコイントークン獲得せず、としていたが、これをパス、銀貨を購入してコイントークン獲得としたところ、0.1T程の改善が見られた。また、これ以外にもコイントークンを支払って上位の財宝を獲得する周回数について検討してみたところ、3周目以降は悪化する傾向が見られたものの、2周目においては、全く支払わない(下位の財宝とトークンを獲得)ものと目立った差は見られなかった。ただし、5-2の2金側については、銀貨を獲得しなければ0.2T以上の遅れが見られた。

 

注8:魔除け市役所において、枚数の1+は、2周目以降に魔除けを追加するということ。基本的には4T或いは6Tに、魔除けをプレイしたのであれば追加、という形で、2枚型の優位と、1枚型の市役所の取りやすさとのハイブリッドを目指したもの。実際には1枚と2枚の間くらいの値となったため、2周目には必ず魔除けを追加するとした別パターンも試したが、結局2枚の速度を超えることはなかった。また、屋敷廃棄強度のパラメタについて、0は市役所購入ができない時だけ屋廃棄を選択する、1は市役所購入していても4T以内であれば屋廃棄を選択する(最初は導入していなかったが、早い周回であれば屋廃棄の方が強力なのではないか、という想定で導入した)、2は市役所購入後にも屋廃棄を選択する(市役所の購入は優先される)、3は市役所購入よりも屋廃棄を優先して選択する、としたもの。

 

注9:偽造通貨系の検証は、偽造通貨の重ね掛けによって変数の受け渡しが非常に複雑になってしまうため、とりあえず偽造通貨の上限を2枚として検証を行った。

 

注10:探検BMにおいて、パラメタ S として、 銀貨枚数 + 金貨枚数 * 2 > S ならば、銀貨よりも探検を優先して購入するとし、この値を複数変化させて、最適な値を探した。ただし、金貨を銀貨の2倍の効用としたことには疑義が残る。例えば S = 0 ならば、初手銀貨の後探検を買う。S = 2は銀を3枚買った後探検を買うという奇妙な動きになってしまうので、検証しなかった。このパラメタ S に依らない場合として、属州が2枚以下ならば自動的に探検を優先する(同じ条件で金貨よりも探検を優先するが、永遠に探検を買ってしまうことへの防御として、同様の評価計算で 7 を下回る場合は金貨購入とした)。また、3Tの探検購入により、4Tに金貨購入を目指すことの是非を検討した(ただし、2Tから探検を買うパターンでは、金を買うまで連続で探検を買う、という動きとなる)。この際、適当にパラメタ S を4及び9として検討したところ、4では3T探検しない場合が早く、9では探検する場合が早くなった。これは、銀貨1枚の損失の影響が、4の方が大きいためと思われる。ここで、パス金が銀銀に劣る可能性があるのか、と考えると、実際には、銀金ができないために劣っているとも考察できる。3Tが3金である場合は、4Tが6金である確率が2分の1以上であることから、銀貨購入とする別のパターンを試したところ、Sが4及び9の両方で最も早い結果となった。ただし、このことは、3Tの銀貨と探検との最適な選択を行っていることを必ずしも保証しない(確実なパス金と、銀金狙いとの効用の分水嶺が、確率2分の1であるとは必ずしも言えない)。今回の検証では、3T探検については一旦この条件において、パラメタ S を変化させることにした。

 

注11:鍛冶屋ステロにおいて、金貨を所持していない8金で、金貨と属州のどちらを購入するか、という観点が存在する。頻度としては、今回のリセット回数を参照する限り8-9回に1回程発生するようなので、単純にリセットし続けると約8-9倍の時間がかかってしまう。そこで、この条件が発生するまでリセットを繰り返し、その状態を保存し、そこから10回ゲームを1000ループ行う、という試行で以って10000ゲーム分の試行とすることにした。その分、初期の保存状態に最終的な結果が左右されやすく、精度が低くなってしまっている。保存の条件として、基本的には金貨を所持していない8金をトリガーとするが、3T鍛冶屋使用及び3T2金パスからの4T鍛冶屋使用における8金は、明らかに金貨であると思われるため、除外することとした。また、属州を購入する場合では、継続的に金貨不所持の8金という条件が発生してしまうと想定されるので、1回目のみ判定されるものとした。結果としては、金貨不所持の8金は、そもそも平均が大きく低下するが、その中でも金貨を購入した方が平均は優れていることが分かった。

 

注12:肉屋公共広場において、まずは肉屋枚数B(1-2)、金貨枚数G(0-2)、屋敷残り目標枚数E(0-1)、の3つを変化させて検証した。5金では、肉屋枚数がB枚に達していれば、公共広場を購入する。ただし、公共広場の獲得上限数は5枚とし、それ以上であれば銀貨を購入する。6金では、肉屋が0枚であれば肉屋を購入し、以降金貨がG枚に達するまで金貨、以降は公共広場を上限5枚まで購入し、それ以降はまた金貨購入とする。Eについては、公共広場を使用する際の、捨て札の優先順位の決め方に作用する。屋敷の所持枚数がE枚よりも多い間は、肉屋による屋敷廃棄を優先し、次に使用することのできる公共広場があるか、肉屋を既に引けている場合、屋敷1枚のみ捨て札にする優先順位を低くする。公共広場の使用に関係なく手札に屋敷と肉屋が揃った場合(使用した場合でも属州を優先して捨てるので屋敷が残った場合等)には、Eを達成していたとしても廃棄する。属州残り枚数が2枚以下と少なくなれば、Eに限らず屋敷を捨てる。最初はEを0(完全廃棄を目指す)に固定として、Bを1-2、Gを0-2で変化させて検証、このうち4-3で優れていたB=1、G=2及び、5-2で優れていたB=1、G=1について、追加で検証した。ここで、6金で公共広場がないならば1枚だけ公共広場を追加する条件も試したが、特に差がないか、遅くなる結果となった。どちらの場合についても、E=1はE=0よりも優れた結果となった。また、4金での公共広場獲得について、以上の検証では、デッキ周回数枚のコイントークンの余裕がある場合に限り、公共広場を買う(ただし、全体としての上限枚数である5枚は変わらない)としていたが、もう少し場合分けをするために、4金で取る公共広場の枚数を0-2枚で変化させた。この場合、公共広場の取得枚数自体には明確な変化が見られたが、平均の変化については、明確な傾向が出たとは言いにくい結果となった。

 

注13:Treasurer(出納官)公共広場において、パラメタ F(0-2) および G(0-2) として、これを変化させて検証を行った。6金出た際、第一に出納官を所持していないならば出納官を、次に公共広場の所持数がF枚以下であるならば公共広場を、更に金貨所持枚数がG枚以下であるならば金貨を、その後公共広場所持枚数が5枚以下であるならば公共広場を、最後には金貨を購入する、という設定にした。尚、公共広場を使用した際、次の公共広場を不使用と判断して捨て札にする優先順位を高く判断する際に、参考にする手札金量として、鍵の金量を考慮し忘れるミスが確認されたので、最も平均のよいもので検証し直したところ、あまり変化がないか、寧ろ少し遅くなる結果となった。不使用自体があまり判断されなかったためではないかと想像される。或いは、回転してでも積極的に使用することが、平均を高めているのかもしれない。このため、一旦は最初の検証の値をそのまま使用することとした。

 

注14:Treasurer(出納官)倒壊において、金枚数のパラメタとは、6金で金を取る取らないということではなく、金貨を所持していない際、出納官の使用時に7金で廃棄置き場に銅貨があるという条件で、敢えて銅貨を廃棄して金貨を取るかどうか、を操作している。尚、倒壊は取る機会が少ないと思われるため、5枚まで等の条件は設けていない。2金以外の獲得条件として、初手4-3は銀-倒壊を取る。また、2周目に5金を出すため自壊させた等で倒壊を所持していない際、屋敷が1枚も廃棄されていないならば倒壊を取る。また、出納官が廃棄された銅貨を利用するため、通常は行わない銅貨廃棄を行うタイミングがある。

 

注15:会計所CityGate(城門)において、城門で戻すカードを決定する際、手札に財宝がないパターンを想定し忘れており、1回だけカードを戻せないバグがあった。大勢には影響がないため、値をそのまま使用している。

 

注16:Treasurer(出納官)CityGate(城門)において、城門で戻すカードを決定する際、銅6枚プラス鍵の1金で7金となる場合等の見落としがあり、銅廃棄がより起こりにくいと思われる出納官1枚の場合に1-2回程度カードを戻せないバグが発生した。大勢には影響がないため、値をそのまま採用している。尚、パラメタとして目指すべき出納官数と金貨数を決めておいて、特定の金量5(銅廃棄か出納官2枚目)、6(金か出納官2枚目)、7(金1枚目か属)における出納官の行動を変化させた複数の検証を行っている。

 

注17:Desperation(自暴自棄)BMにおいて、6-7金でDesperationを購入する基準として、金貨枚数ではなく、周回数を用いることにした。2周目から購入する場合は、金貨を購入することなく、属州を購入し始めることになる。また、金不所持の8金については、全く同じ周回数を基準として、それ以上であれば属州を買い、それ未満であれば金貨を買う。ただし、金を持っていれば周回数が満たなかったとしても属州を購入する。

 

注18:チュウ。ネズミWayOfTheHorseにおいて、パラメタU(Upper)及びL(Lower)は、それぞれ保持するネズミの所持数の基準を決めている。Upperが規定するのは、銅廃棄ができるタイミングで、Way使用するか判断するためのもの。Lowerは、銅廃棄ができないタイミングで、Way使用するか判断する(使用しない場合はネズミとしては不使用となる)。ただし、属州が残り2枚以下であれば基準に関係なく保持しない。また、屋廃棄は基準関係なく行うが、属州残り1枚以下では行わず、Way使用する。

 

注19:商人ギルド廃墟WayOfTheHorseに代表される、廃墟WayOfTheHorse系について捕捉しておく。現在のところそもそも、廃墟は各カード5種類がそれぞれの管理番号を持っており、便宜的に5種類のサプライに分割してゲーム内に存在していることになる。これとは別に、廃墟の山札内に存在するカードの順番を管理するセル群があり、廃墟のサプライがゲーム内に生成される際には、まずは50枚全てのリシャッフルを行い、そこから必要な10枚を残し、5種類それぞれの枚数をカウントし、それぞれのサプライ枚数配列にこれが格納される。廃墟が効果によって配られる際には、このセル群の右端から順に、山札のトップとして参照されて消去されていき、その番号に該当するサプライ枚数配列が減少することになる。5種類全てのサプライ枚数が空になると、廃墟のサプライが空になったと判定される。しかし、この仕組みはあくまでも廃墟を配る際のパッケージとなっており、廃墟を意図的に購入する場合は、購入アルゴリズムが適切な番号を渡さなくてはならない都合上、もし愚直に導入するとしたら、いちいち廃墟の山札の上が何であるか、をチェックしなくてはならなくなり、かつ廃墟枚数全体の管理も必要になってくる。これを簡易的にスルーする方法として、例えば廃墟を獲得するという偽のイベントの導入が考えられるが、今回は、廃墟そのものとしての使用はないとして、図書館跡地のみのサプライとして扱うことにした。こうすることで、通常のサプライの一種として簡易的に扱うことができ、廃墟山札のチェックや、特殊な導入が無用となる。廃墟そのものとして使用したい場合もあるかもしれないのだが、想定しづらく、今回はそれを無視することにした。

 

注20:肉屋ステロのアルゴリズム再々改良版について、補足しておく。主には屋敷の改築先を銅貨にするタイミングの最適化を探っていて、これはデッキ4周目であるということが分かった(ただしこれとは別に、サプライの残り属州が2枚以下であるならば、銅貨に改築する)。平均的に、デッキがあと1周するかしないかくらいのタイミングであることから、銀貨に改築するのであれば、2回は使えないと割に合わないのだろうということがうかがい知れる。しかしながら、そもそもとして他のコイントークン消費系も併せてかなりの改良を経ていて、一概には言えないのだが、コイントークンの使い方も含めて初期とはある程度違う方法で属州購入を行っているためか、銅貨改築タイミングの最適化だけではおそらく説明できないであろうターン数の改善が見られた。ゲーム終了時に残ったコイントークンの平均数が0.5弱減少しており、コイントークンの使い方がより適切になっていることは考えられる。今回はシンプルな測定とするために、肉屋は3枚ではなく2枚上限、また、6金以上で肉屋を取るタイミングは肉屋が0枚だけの時と、これまでの試験で得られていた細かい調整を考えずに測定を行った。これらについての今までの調整がそもそも間違いであったために今回大きく改善が見られた可能性もあるが、今後微調整によって、ターン数が更に改善されることもあり得る。また、避難所場の肉屋ステロで、5-2で初手に屋敷を購入し納屋を廃棄するパターンの補足もしておく。基本的には屋敷を銀貨にすることを目的に行っているが、この屋敷の改築先を銅貨にするタイミングとして、通常の肉屋における今回の検証から、デッキ4周目以降を採用している(属州残り2枚以下の条件も同様)。

 

注21:避難所場のAnimalFairステロにおいて、初手で共同墓地を廃棄してAnimalFairを獲得するが、これまでのシミュレーターの仕組みでは、代替コストを簡単には導入できず、コスト不足で即座にバグを吐いてしまう。購入時効果等で処理することは考えられるが、仕組み上、コストの不足はカードの購入に入る前にバグとして返されてしまうので、これまでとは違う仕組みで行わなくてはならなくなる。間に合わせの手段としては、購入アルゴリズムで一時的にCoinを出現させるか、AnimalFairのコストを減少させ、後から別の場所でリセットする方法等が考えられるが、これを採用した場合、以降のAnimalFairでは毎回同様の間に合わせを行うことになる。ほぼ実際に近い挙動として導入を考えるならば、購入フェイズ関数において、コストをチェックする際、購入物がAnimalFairであることを調べさせ、特別に処理することが考えられるが、基本的な関数である購入フェイズ関数をできるだけシンプルに保ちたいという気持ちもある。今回、これらを回避するため、手札の指定されたアクションを廃棄し、AnimalFairを獲得する、という0コストの偽のイベントを導入することにした。厳密には異なる挙動となり、またゲーム内には存在しない概念の導入となるのだが、簡潔さを考えて、今回はこのようにした。