モンテカルロ木探索その2

Bomb, RemoveBit, Crack, MoveBit, AddBitの順できた。いきなりBombが二つはじけて双方HP: 6からのスタートというヒリヒリ具合。

      Bomb [None, None] []
 RemoveBit [1, 0] []
     Crack [1, 0] []
   MoveBit [1, 0] []
    AddBit [1, 0] []
life: [6, 6]

これRemoveBitでRemoveBitを消して、MoveBitでMoveBitを無効化すればAddBitでBombにビットを置いて僕が負けるよね。だけどAIはCrackを消した。

じゃあ僕の側はAddBitを消したら安心か、と思ったけどよく考えるとCrackでHP:4になった後でCrackのビットをMoveBitでBombに奥という攻撃が成立してしまうからそれでは安心ではない。持ち時間いっぱい考えてMoveBitの頭を削ることに。

      Bomb [] []
 RemoveBit [1, 0] []
     Crack [1] []
   MoveBit [0] []
    AddBit [1, 0] []

そしてMoveBitでAddBitを無効化する。AddBitではBombに置く。4:2。

      Bomb [None] []
 RemoveBit [1, 0] []
     Crack [1] []
   MoveBit [0, 1] []
    AddBit [0] []
life: [4, 2]

まだRemoveBitがAIの先手。案の定RemoveBitのビットを消される。しかしそれはAddBitを消すべきだよね。僕はMoveBitを無効化してAddBitでBombに置いて勝利。

うーむ。アルゴリズムにバグがあるかもしれないなぁ。終盤とかもっと強くてもいいはずだ。RemoveBitなんか選択肢が3つしかなかったわけだし。

とりあえずおつむの中身を表示するようにしてみたが問題なく動いてそうだなぁ。もしかすると何をやっても勝ち目がないので一番紛れそうな手を打ってみたけど僕がだまされなかったというだけなんだろうか。仮にAddBitを消したとしよう。ふむ。僕はMoveBitを消してMoveBitでBombにビットを移動して勝利。じゃあMoveBitを消したら?MoveBitを消してAddBitでBombに置いて勝利。そうか、同じくらいの深さで何をやっても僕の勝ちだったのか。