codingame:Spring Challenge 2022 ルール要約&モンスター生成ロジック
これはなに?
お題のゲームを解くプログラムを各自が作成、サイト上に提出して順位を競い合うゲームAIコンテストCodinGame「Spring Challenge 2022」について、ルール要約と予め設定されている内部パターンについて紹介します。
※記載内容の保証はし兼ねるので、自己責任で読んでください。
コンテストページ:https://www.codingame.com/contests/spring-challenge-2022
コンテスト期間:4月21日~5月2日
本ゲームは、拠点を守りつつマップ上に現れるモンスターになるべく多くのダメージを与えた方が勝ちです。
ルール説明
各プレイヤーは3体のヒーローを操作し、マップ端から出現するモンスターを倒して下さい。モンスターが自分の拠点に到達するとダメージ1回受けます。自分の拠点が3回ダメージを受けると負けとなります。 相手プレイヤーが先に3回ダメージを受けるか、220ターン経過時に相手より受けたダメージが少ない場合、あなたが勝利します。 なお、受けたダメージが同じ場合、各プレイヤーは拠点外でモンスターに与えたダメージ量の多いほうが勝者となります。
マップ
X=0、Y=0を左上、X=17630、Y=9000を右下のピクセルとする長方形のマップ上でゲームを行います。 wood2ランクまでは、マップ全域の視界を得ていますが、wood1以降は自分のヒーローから2200ユニット以内、または自分の拠点から6000ユニット以内の視界のみとなります。
エンティティ
各エンティティ(ヒーロー、モンスター)は、衝突せず、同じ座標に存在することができます。
ヒーローとアクション
毎ターン、あなたは各ヒーロー毎のコマンドを出力して下さい。ヒーローは以下のコマンドのいずれかを実行することができます。
- MOVE:指定されたマップの座標に向かって最大800ユニット分前進します。
- SPELL:(wood1以降)定められた呪文を使用します。
- WAIT:その場に留まります。
互いのヒーローにはダメージを与えられません。 ヒーローの移動後、800ユニット以内にいるモンスターに2ポイントのダメージを与えます。
モンスター
モンスターは、プレイヤーの拠点以外のマップ端から点対称にランダムで出現します。出現時にランダムで定められた移動方向に毎ターン400ユニットの速度で一直線に進みます。点対称の対になるモンスター同士は、移動方向も点対称となります。全てのモンスターには一定のHPが定められており、ヒーローからのダメージでHPが0になったモンスターは消滅します。
ターン終了時に拠点から5000ユニット以内にモンスターがいた場合、その拠点を目的地として移動方向を変更します。ターン終了時にHPが0でないモンスターが拠点から300ユニット以内にいると、そのモンスターは消滅し、拠点に1ポイントのダメージを与えます。 なお、WINDコマンドでターゲットされた拠点の半径外に押し出された場合、再度ランダムに定めた移動方向に移動し始めます。
ゲームのターンが進むにつれ、モンスターの初期体力はわずかに多くなることがあります。
マナと呪文
あなたのヒーローがモンスターにダメージを与えるごとに1ポイントのマナを獲得する。HPが0のモンスターからでも獲得する。 獲得したマナ10ポイントを消費することで、あなたのヒーローは1つの呪文を唱えられる。
- WIND
:1280ユニット以内にいる自軍のヒーロー以外のエンティティは、呪文を唱えたヒーローから x, y の方向に2200ユニット移動させられる。 - SHIELD
:2200ユニット以内の指定したエンティティは、12ターンの間スペルの対象にならない。 - CONTROL
:2200ユニット以内の指定したエンティティは、次のアクションを指定された座標へ強制的にMOVEさせられる。
リーグ毎の特徴やルール開放
- bronze:「SHIELD」「CONTROL」の呪文が解放されます。
- wood1:「WIND」の呪文が解放されます。マップ上の視界が制限されます。
- wood2:呪文は使えません。マップ全域の視界が得られます。
行動順
- CONTROLの呪文が対象に適用される。
- SHIELDの呪文が対象に適用される。SHIELDは次のターンから有効になる。
- すべてのヒーローが移動する。
- ヒーローは範囲内のモンスターに攻撃し、マナを生成する。※モンスターは移動前であることに注意
- WINDの呪文が範囲内のエンティティに適用される。
- すべてのモンスターは速度に応じて移動する。ただし、WINDを受けたモンスターは移動しない。
- SHIELDの残りターンが減少する。
- 新しいモンスターを出現させる. 死んだモンスターが取り除かれる.
モンスター生成ロジック
ゲーム中のモンスターは下図赤丸の4点から発生します。実際の発生地点はy軸方向に799マップ外に進んだ点となります。
各点から初期体力10のモンスターが1匹/5ターンの速度で発生し、10ターン毎に初期体力が+1されます。 200ターン経過後、サドンデスモードとなり、発生するモンスターは各プレイヤーの拠点をより狙うようになります。
呪文周りの細かい仕様
- 複数からCONTROLを受けた場合、各移動先の平均に向かいます。
- 複数からWINDを受けた場合、各移動量の合計に飛ばされます。
- SHIELD中は、新たなSHIELDも弾きます。
- SHIELDは次ターンから有効になります。同じターンの呪文は作用します。
- WINDなどでモンスターはマップ外に飛ばされます。ただし、拠点半径内の場合は境界線を超えません。
- WINDを受けたモンスターはそのターン移動しません。
- ターン終了時にマップから800ユニット離れたモンスターは消滅します。(マップ外でもモンスターは存在。)
- マップ外のモンスターは視認できません。
- マップ外からモンスターが拠点エリア内に侵入することはできません。