CodinGame Spring Challenge 2022に参加しました。
順位はGoldリーグの1,769位でした。 やった内容と感想について書いていきます。
問題内容
対戦型タワーディフェンスって感じのゲームでした。
- 3ユニット操作
- 盤面のブラインド有り
- 非グリッド(実質)
辺りがクセの強い箇所だったように感じます。
詳しいルールはツカモさんの解説記事*1をご参照ください。 https://tsukammo.hatenablog.com/entry/2022/04/22/010522
最終内容
Gold昇格できるラインでできるだけ軽めの実装を、みたいな方針で作ってました。
大枠の方針はルールベースです。
最初30ターンは、全ユニットがモンスターの発生口近辺に張って、マナ稼ぎをします。 ここの実装は、移動可能範囲に1,000点ランダムプロットして一番敵数を巻き込める位置を選ぶ*2、という風にしました。
それ以降のターンは、DF2人とFW1人に分け、以下の方針で動かしました。
- DFの1人は、自ゴールから距離約600の位置に固定配置して、WINDを打ちまくる。
- もう一人のDFは、自ゴールから距離約5,000のエリアでマナ稼ぎ。
- FWは、相手ゴールから90度に引いた直線上を距離400~3,500の範囲でランダムウォークしながら、見つけたモンスターを敵陣に向けてWINDする。
感想
今回はルールベースマシマシ実装のつらさからか、いまいち気持ちが乗らなかったのもあってGold昇格のタイミングで切り上げてしまいました。 ルールベースや非グリッドはあんまり好きじゃないかなあ*3とかを感じたり。 次回は無理なくゲーム木探索できるような問題が出て欲しいですね。今年は秋は開催されるのでしょうか?
今回、コドゲでは初めて Rust で参加してみました。 AHCとかだと、トレイトやポリモーフィズム周りの機能をあんまり使ってこなかったのですが、今回その辺りを勉強するきっかけになって良かった気がします。 Rust 開発用のスクリプトも色々用意できたので*4、次回に繋がりそうでこの辺も収穫でした。