読者です 読者をやめる 読者になる 読者になる

CODE VS 5.0 決勝に出場しました

プロコン参加記 CODE VS マラソン

live.nicovideo.jp

結果は、Bリーグで1勝2敗のリーグ3位で敗退となりました。

応援して下さった方々ありがとうございました!

悔しさはありますが、実力相応の結果だと思います。(むしろ決勝に来れたのが奇跡的です)
一方、自分が工夫した部分が決勝でうまく働いているシーンがあってそれは嬉しかったです。

CODE VSが来年も開催されればチャレンジしたいです。

各対戦振り返り

vs D0

oxxooxoxx 4-5 負け

予選終了から本戦までの間、本戦AIからリスキー行動*1を外したAIを戦わせていたのですが、1-6という厳しい結果でした。
敵分身も使ってくる相手だったので、本戦版でも相性はそれほど良くならないはずです。

ソウル回収効率で言うとほとんど互角に見えます。
私のAIが回転斬に消極的な一方、D0さんは回転斬に積極的に忍力を使うので、D0さんがうまく回転斬を使うかが勝敗を分けていたように見えます。
また、要所要所で敵分身を使ってくるのも効いていました。
ラウンド8では、こちらが回転斬準備で犬に囲まれた時に敵分身を使ってきたので、こちらの分身油断モードが発動しなくなりました。
また、トドメも敵分身でした。
ラウンド9でも、回避困難な状況で敵分身を使われて負けたので、この辺りはキッチリやってくるなあと思いました。

ラウンド1はD0さんが回転斬で忍力を使いきり、なにもしなくても2手詰みとなったので、超高速反復横跳び→移動なし回転斬りが発動しました。
誰にも気づかれてなさそうです。

vs togatoga

xooxxooo 5-3 勝ち

予選終了から本戦までの間で15-26でした。

togatogaさんは回転斬のプロですが、超高速は使わないので、超高速低コスト回転斬高コストを引けば勝率は上がります。
本戦では回転斬り高コストが多かったので、そこは運に恵まれました。

ラウンド1では、早くから分身油断が発動していて、最後は犬に囲まれた時に回転斬が低コストにも関わらず使わずに負けてしまいました。
ラウンド7でコスト7高速移動を使っていることに対するコメントですが、より正確に言うと、まず妨害警戒で防御系忍術を使わざるを得ない状況だったはずです。
そして、その中で超高速だけ獲得できそうなソウルが多かったため、超高速を使ったのだと推測します。

ラウンド8は、見応えのある試合になったと思います。(自画自賛)
AIに搭載した機能のほとんどが使われている、自分のAIを象徴する試合です。奇跡か。
まず、敵分身を使われないまま犬30を超えたので、分身油断モードが発動し、左下で犬をすり抜けながらソウルを回収しています。
中盤からは回転斬りで追い上げました。2ターン目に回転斬りを発動した時、出来るだけ多くの犬を巻き込めるような動きをするようにしています。
犬で互角になった後、近くに取れるソウルが無くなり困っているシーンでは、評価値が3ターン連続で悪化した時に発動する分身連打モードで左上に強引にすり抜け、勝利を確実にしました。
最後は2手詰めの落石+ドヤ顔回転斬で締めてます。

私のAIは回転斬の条件が厳しく、コスト6でも4体巻き込めないと積極的に使いません。
他にも、使用後の残り忍力や、このソウル差で犬の差をひっくり返せるかなどを考慮します。

vs colun

xoxxooxox 4-5 負け

予選終了から本戦までの間で4-14でした。
一切妨害をしてこない相手なので、リスキー行動を解除した時には相性のよい相手になるはずです。
それでも勝てなかったので、colunさんのAIがとても強いと言えます。(バグってるのに・・・)

本戦の試合でも強引な分身を使って勝っている試合がいくつかあるように見えます。
恐らく、超加速のコストの低さよりも、自分身のコストの低さの方が勝率に寄与しています。
自分身コスト2をもっと引ければ分からなかったかもしれないです。
リーグを2勝まみれにしたかったなあ・・・

ラウンド8で詰ませたかのようなコメントをしていましたが、完全に嘘でした。(画面が見えていない)
詰ませが発動したのではなく、相手がスキル無しだと詰むときに、初回とりあえず妨害してみるやつです。
刺さったのはたぶんcolunさん側のバグです。

私はステージで自分の試合結果見るのめちゃくちゃ緊張してました。
冷静なコメント入れられる人々すごい。

vs DWANGO

ooooo 5-0 勝ち

全く未知の相手でしたが容赦ない感じになりました。学生時間パワーです。
DWANGOさんのAIもソウルに愚直に近づいているという訳ではなさそうで、
ラウンド5の20~35ターンあたりの右上の忍者は、うまく犬を回避しながら安全なソウルに向かっています。
評価関数を使った複数手の探索をしていそうです。


もし僕のエキシビジョンの相手がKlabのmecha_gさんだったら勝てなかったと思います。
予選終了から本戦までの間で2-10でした。

雑感

結論として勝ちたかったしか出てこない・・・

懇親会では予選の思い出を語れて面白かったです。逃げ切り狙いトークとか。

ゲームについての感想

CODE VS 4.0の時は折れたけどCODE VS 5.0はやれたのは、最初にやるべきことが分かりやすいからということと、オンライン対戦でモチベーションが上がったことだと思います。
最初は犬避けてソウル集めるだけで勝てる→オンライン対戦で強い人の戦法を(可能な限り)パクるで結構行けます。

積極的に攻撃するAIはそうでないAIに比べて難しいので決勝に攻撃AIが少ないのは仕方ない気がします。
さらに、安全志向AI>攻撃AI>リスキー行動AI>安全志向AIみたいな相性があり、
リスキー行動AIは予選だとシルバー~ブロンズの超攻撃AIにレーティング持ってかれるので、決勝に進出するのが難しい状況でした。
それにより安全志向AI優勢の流れが更に強くなった気がします。
繰り返しになりますが、後半リスキー行動取りまくりAIで決勝環境勝てなかったのホント悔しいです・・・

とはいえ、攻撃強くしすぎると殺伐詰み探索勝負になってしまうのでもしかしたらワザと避けているのかもしれません。
CODE VS 3.0とかそんな感じだったのだろうか・・・?

もっと特徴的な戦法も考えたことはあります。
例えば岩の配置を整備し、うまく犬の最短経路を切り替えることで犬を往復させるとか、
忍者に時計回りにグルグル移動することを強制させると実は強いんじゃないかとか。

CODE VS 5.0は本当に楽しめました。恐らく最後?の春休みのいい思い出になりました。

AIをこっそり公開しています

実行可能jarとソースとreadmeが入ってるzipです。
jarをCODE VSクライアントと同じフォルダに置いてreadmeにあるコマンドをコピペすれば多分すぐに動かせます。
本戦のAIより少し強くなっているので是非戦わせてみてください。
ソースはめちゃくちゃ汚いので見る価値は多分無いです。

https://dl.dropboxusercontent.com/u/264857305/pirozAI_v6.zip
(そのうち消えると思います)

*1:敵の忍術使用によって負ける可能性のある行動