接着剤の精進日記

競プロでの精進や研究に関係したことを書いていきます。

接着剤の「CodinGame Spring Challenge 2022」 参加記

はじめに

CodinGameのコンテスト(CodinGame Spring Challenge 2022)に参加しました
結果は世界57/7,695位(Legend)、日本13/445位でした
超次元サッカーで自分だけのゴールを決めよう!

ルール

いつものごとくツカモさんが翻訳記事を書いてくださっているのでそちらを参照ください(ありがとうございます)
tsukammo.hatenablog.com

やったこと

ルールべースで序盤はファーム、30ターン以降は攻2、守1のフォーメーション
相手にやられる前にやる!

ファーム

初手はモンスターのリスポーン地点を目指して進む
モンスターが見え始めたらシミュレートで貪欲に評価の高い行動を決定
評価関数には獲得マナ、baseの視界にいるモンスター、baseに向かってくるモンスター、視界などを評価対象とする
敵も入れていたがあまりうまく動かなかったので最終的には消した

攻撃

攻2でWIND一発 -> 2人WINDで相手のbaseの視覚外のモンスターを2ターンでゴールに入れる
もしくは、すでにbaseに侵入しているやつがいたら2人WINDで一気に押し込む
WINDを打つ際には、モンスターの移動をシミュレートし、移動先とbaseの直線上で上記の2つを最短ターンで行える場所に先回りして移動する
モンスターがいない場合は、リスポーン地点付近を索敵する
また、マナが40以上のときはコントロールで敵を寄せ、逆にマナが30未満のときはファームを行いマナを稼ぐ

守備

守備が何もわからなかったので最低限だけ実装した
baseの視界に入っているモンスターのうち、baseから一番近いモンスターに移動する
このターンにダメージを与えてくるモンスターがいるならWINDを使う
以上
防衛役にシールドは攻めのリソースがなくなるので諦めた

やりたかったこと

・焼きなまし(or 探索)
・守備を頑張る
・攻撃の効率化(そのターンごとに判定しているので無駄な動作があったりする)
・過去情報の活用
・ファームの効率化

感想

"fog of war"で嫌な予感がしていたけど大いに苦しんだ
探索が難しいのでルールベースだったが、一つ行動を追加するとあちこち壊れたり、上手く行っていた行動が弱くなったりして難しかった
上位陣はちゃんと探索できるところは探索していたり、使える情報をきちんと使い切っていてまだまだ詰めれるところあったんだなあってなった
最初は焼きなましをしようとしたり(シミュレートが重くて結局諦めた)、ローカル対戦でパラメータ調整する環境を作ったり(今回のは有効じゃなかった)、ゲームと向き合う時間が足りなかったかなと反省
対戦環境は次回以降も使えるはずなので、今後有効活用したい
とりあえずLegend行けてよかった