王への請願

BSWに行ってみたらみんなドミニオンじゃないゲームをしていた。王への請願 - ルール王への請願 - キャラクターカードリスト


対戦したいけど対戦相手がいないのでサイコロを振るプログラムを作った。

In [1]: def dice(n):
   ...:     return list(sorted(choice(range(1, 7)) for _i in range(n)))
   ...: 

In [3]: from random import choice

In [4]: dice(5)
Out[4]: [1, 2, 2, 5, 6]

In [5]: dice(5)
Out[5]: [1, 2, 5, 6, 6]

round 1

さて、最初はダイスは3個だそうだ

In [6]: dice(3)
Out[6]: [1, 3, 5]

全部奇数だ。下女が取れる。本当は僕は確率的に同等な下女と哲学者では哲学者の方がいいんじゃないかと思っているけど、ここは素直に下女をとっておこう。P1: 下女。

2人目のプレイ。

In [7]: dice(3)
Out[7]: [3, 4, 5]

ふむ。4だけを振り直せば1/2の確率で下女、4を残して振り直せば、1/4の確率で哲学者、2/4の1/2の確率で哲学者、のこり少しの確率で農夫。うん、せっかくだから哲学者にチャレンジしよう。4だけキープ。

In [8]: dice(2)
Out[8]: [2, 2]

うん、成功。P2: 哲学者

round 2

In [9]: dice(3)
Out[9]: [4, 5, 5]

うーん、下女で1~3のどれかが追加できるのにどれもでなかったか。5のペアをキープして…あ、違う、下女の効果はダイスの追加じゃなくてダイスの目を増やすのか。じゃあ4に+1して5の3個ペアにしよう。P1: 下女, 衛兵

In [10]: dice(3)
Out[10]: [1, 5, 6]

ふーむ。哲学者の効果はどれかのダイスを減らしてその分を別のに載せるんだっけ。1, 5を2, 4に変えても全部偶数で哲学者になるのでカードを得られない。むしろ6を振りなおして1/2で下女、1/2で哲学者の効果で1,5を3,3にして農夫、でいいんじゃないかな。

In [11]: dice(1)
Out[11]: [4]

農夫になった。P2: 哲学者, 農夫

round 3

In [12]: dice(3)
Out[12]: [1, 1, 2]

衛兵の効果「2の目のダイスをアクティブなダイスに加える」で2*2を作るのが正解だろうな。天文学者をゲット。 P1: 下女, 衛兵, 天文学者

In [13]: dice(3)
Out[13]: [3, 4, 5]

んー。4,4,4かな。あ、しまった、農夫があるからサイコロが増えるのか。やりなおし。

In [14]: dice(4)
Out[14]: [2, 5, 5, 5]

これは5を確定させて1/6の確率で狩人、5/6で衛兵だな。

In [15]: dice(1)
Out[15]: [5]

うむ。P2: 哲学者, 農夫, 狩人

round 4

In [16]: dice(3)
Out[16]: [1, 3, 3]

今さらだけどダイスの数が増えないのが足を引っ張りそうだね。手持ちは下女、衛兵、天文学者。衛兵の効果で1,3,3,2、次に下女の効果で1+2して3,3,3,2。3を確定して2をリロール。値に関係なく天文学者の「アクティブなダイスのいずれか1つを、既に確定しているダイスのいずれかと同じ目に変える」で3にする。4個揃えたが、天文学者も狩人も1枚しかないのか…あれ、農夫しか取れないじゃん。うむむ。

P1: 下女, 衛兵, 天文学者, 農夫, ダイス3個

P2のターン、まず農夫でサイコロが増えて5個になる、と。

In [17]: dice(5)
Out[17]: [1, 1, 1, 4, 4]

この時点で女官取れるけど、まあサイコロを増やすことのベネフィットを考えると、まずは狩人の効果で1,1,1,4,4,3。ふむ、哲学者の効果で1,3を2,2にすれば司教が取れるが、効果としてはダイスを1個増やすだけだよな。任意の個数のダイスに1をたせる女官の方が面白そうだ。一応3をリロールして1/6の確率で貴族。振った、4が出た。このサイコロチートじゃないか?(ぇ)

P2: 哲学者, 農夫, 狩人, 貴族, ダイス6個

round 5

P1: 下女, 衛兵, 天文学者, 農夫, ダイス3個
農夫の効果でダイスは4個に。[1, 4, 4, 4]。まあ衛兵で1, 4, 4, 4, 2にする。んー、下女で1+1して女官かな。そうだろうな。
P1: 下女, 衛兵, 天文学者, 農夫, 女官, ダイス5個

P2: 哲学者, 農夫, 狩人, 貴族, ダイス6個
農夫の効果でダイス7。[1, 2, 2, 4, 5, 5, 6]。狩人で[1, 2, 2, 3, 4, 5, 5, 6]。お、これは1〜6が揃っているから錬金術師を取れるじゃん。
P2: 哲学者, 農夫, 狩人, 貴族, 錬金術師, ダイス8個

round 6

P1: 下女, 衛兵, 天文学者, 農夫, 女官, ダイス5個
勝てる気がしなくなってきた。出目の制御能力に気を取られたがダイスの個数の方が寄与が大きい気がする。農夫の効果でダイス6。
[1, 1, 1, 3, 3, 5]、衛兵で2を追加。んー、下女で3+1すれば1〜5ができて魔術師を取れるけど、それでいいのだろうか。ダイスの数で出遅れているのに。うーむ、でもここで崩して単なるダイスを増やすカードを取りに行くのは結局二兎を追う者はなんとやらかもしれない。
P1: 下女, 衛兵, 天文学者, 農夫, 女官, 魔術師, ダイス7個

P2: 哲学者, 農夫, 狩人, 貴族, 錬金術師, ダイス8個
農夫でダイス9、[1, 1, 1, 2, 4, 5, 5, 6, 6] 狩人で3
さて…全部の1に貴族の効果で+2、2,4を哲学者の効果で3,3に。[3, 3, 3, 3, 3, 3, 5, 5, 6, 6]。
5と6をリロール。[2, 4, 5, 6]。錬金術師で2,4を3,3に。全部で3が8個。もちろん国王をget
P2: 哲学者, 農夫, 狩人, 貴族, 錬金術師, 国王, 王妃10

round 7

P1: 下女, 衛兵, 天文学者, 農夫, 女官, 魔術師, ダイス7個
農夫の効果でダイスが8に増える、が、3より大きい8個のセットを作らないと勝てないのか。無理だろ。
[2, 2, 3, 4, 5, 5, 6, 6]。衛兵で2を追加。うーむ。手札を見て考える。
下女は1個のダイスを+1〜+3なので目標が5なら2〜5が当たりになる。天文学者は1つのダイスを確定済の目に揃えるので無条件に当たり。魔術師も任意の値にするので無条件に当たり。女官は任意個のダイスに+1だから当たりが1/3の確率に増えるだけ。女官使い辛いな。目標の値の一つ下の値が出る確率は1/6なのだから8個振ったときに2枚出ているのは女官を使うチャンスと言えるだろう。2個の5を女官で+1して4個の6を確定、残り4つをリロール。

In [25]: dice(4)
Out[25]: [1, 2, 2, 5]

残念。1を天文学者で6に変えてから確定。3つをリロール。

In [26]: dice(3)
Out[26]: [4, 5, 6]

オッケー!下女で4を6に変更、5を魔術師で6に変更。全部確定させて6が8つ。国王を奪取した!

さてP2のターン
P2: 哲学者, 農夫, 狩人, 貴族, 錬金術師, 王妃10
あ、P1は国王を奪って喜んでたけど、8個以上のセットを作ればいいだけかこっちは。余裕だろう。農夫の効果でダイス11

In [27]: dice(11)
Out[27]: [2, 3, 3, 3, 4, 4, 4, 4, 5, 6, 6]

えーと、手札をじっくり見る。哲学者は2つのダイスの和を保って変更する。3,5を4,4にできる。狩人は3のダイスを追加。貴族は任意の数のダイスに+2。錬金術師は3つのダイスの和を保って変更。王妃は任意の値のダイスを追加。ふむふむ。簡単。
狩人で3のダイスを追加:[2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 6, 6]
哲学者で3,5を4,4に変更:[2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 6, 6]
錬金術師で3,3,6を4,4,4に変更:[2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6]
貴族で2に+2:[3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6]
王妃で4を追加:[3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6]
3と6をリロール: [2, 5]。2を確定して5をリロール。[2]。

というわけで4が11個になりました。これでP2の勝利なのかな?それともデュースみたいにまた国王奪還が繰り返される?