codingame:SPRING CHALLENGE 2023WOODリーグ ルール翻訳

こちらは年2回開催される、botプログラミングバトルCodinGameの「SPRING CHALLENGE 2023」のルールを翻訳したものです。 www.codingame.com

ツカモさん(tsukammoの収穫記)がルールを要約してくださるのが恒例となっていましたが、今回お忙しそうだったので、僭越ながら簡単に訳しました。

ツカモさんのようなわかりやすい要約ではなく、DEEPLにつっこんだものを簡単に修正したものです。記載内容の保証はできません。すみません。

5/26 18時ツカモさんのブログが更新されました。codingame:SPRING CHALLENGE 2023 ルール要約 - tsukammoの収穫記

目標

対戦相手よりも多くのクリスタルを獲得した状態でゲームを終了すること。

クリスタル
ゲームの舞台は研究室で、アリロボを担当する2人の科学者が、クリスタルを最も効率よく集める方法を求め、競っている。

ただし、アリを直接コントロールすることはできない。アリはビーコンの存在に反応する。

ルール

ゲームはターン制で行われる。 各ターンでは、両プレイヤーは同時に任意の数のアクションを実行する。

マップ

マップはランダムに生成され、六角形のセルで構成される。

各セルはインデックスを持ち、最大6つのセルと隣接する。各方向には0から5のラベルが貼られている。

セルの方向
各セルにはタイプがあり、そのセルが何を含んでいるかを示す。

  • 0 リソースが含まれていない場合。
  • 1 卵が含まれている場合。(Level2 WOOD2)
  • 2 クリスタル資源が含まれている場合。

また、各セルに含まれるresources(資源)の量も入力で与えられ、ゲーム中にアリがセルを収穫することで変化することがある。

また、セルに拠点がある場合もあり、プレイヤーのアリはここからゲームを開始することになる。

拠点と卵

アリとビーコン

両プレイヤーとも、自分の拠点に数匹のアリが配置された状態でスタートする。プレイヤーはアリを直接動かすことはできないが、ビーコンを置くことでアリを動かすことができる。

プレイヤーは1ターンに何個でもビーコンを置くことができるが、各マスに1個ずつしか置くことができない。

ビーコンを置くとき、プレイヤーはそのビーコンにstrength(強度)を設定する必要がある。ビーコンの強度は重みのようなもので、それぞれのビーコンに送られるアリの割合を決定する。

つまり、ビーコンのstrength強ければ強いほど、自分のアリがそのビーコンに送られる割合が高くなる。

例 次の例では、strengthが2,1,2の3つのビーコンが存在する。

色のついた菱形の中の白い数字がアリの数を表しており、ここでは合計10匹のアリがビーコンに派遣される。

10匹のアリは、ビーコンの強さと同じ割合で、3つのビーコンに移動する。

アリは1ターンに1セルの速度で移動し、指定されたビーコンへの最短経路を通るように最善を尽くす。

ターン終了後、次のターンが開始するまでの間に、既存のビーコンはパワーダウンし、プレイから取り除かれる

ビーコンを使ってアリを配置し、自分の拠点資源との間に収穫チェインを張ろう。

収穫チェイン

クリスタルを収穫して得点を得るには、資源と自分の拠点の間に、アリを含むマス途切れることなく連なっている必要がある。

1ターンに収穫できるクリスタルの量は、チェインの中で最も弱いリンクと同じ、つまり連鎖を構成するセルのアリの数のうち、最も少ない数である。

この図では、青プレイヤーが1ターンに4個のクリスタルを収穫することになる。

収穫チェインは卵に対しても同様に機能する。 卵を収穫すると、資源と同じ数のアリが次のターンの開始時に自軍の拠点にスポーンする。 (Level2 WOOD2)

収穫量各資源ごとに別々に計算され、それぞれの資源について、そのマスから自分の拠点までの最適な収穫チェインがゲームによって自動的に選択される。

行動

各ターンにおいて、プレイヤーは以下の行動を任意の数だけ行うことができる。

  • BEACON index strengthstrengthの強度をもつビーコンをindexのセルに配置する。
  • LINE index1 index2 strengthindex1からindex2までの道筋にあるセルすべてに、strengthの強度をもつビーコンを配置する。最短経路は自動的に計算される。
  • WAIT:何もしない。
  • MESSAGE text: HUDの自分側にtextを表示する。

各ターンの行動順

  1. LINEのアクションが実行される。
  2. BEACONのアクションが実行される。
  3. アリが移動する。
  4. クリスタルが収穫され、得点となる。
  5. 卵が収穫され、新しいアリが拠点にスポーンする。(Level2 WOOD2)

勝利条件

マップ上のクリスタル総量の半分以上を獲得する。 100ターン後に相手より多くのクリスタルを獲得している。

敗北条件

プログラムが決められた時間内にコマンドを出力しない、または認識できないコマンドを出力した。

デバッグのためのヒント

タイルにカーソルを合わせると、ビーコンのstrengthなど、そのタイルに関する追加情報が表示される。 MESSAGE コマンドを使用して、HUDにテキストを表示できる。 ビューアの歯車アイコンを押して、表示オプションを追加する。 キーボードでアクションを操作する:スペースで再生/一時停止、矢印で1フレームずつステップする。

ゲームプロトコル

初期入力

最初の行: numberOfCells マップ内のセルの数を表す整数。
次のnumberOfCells: セルをインデックスで並べたもの 各セルはスペースで区切られた8個の整数で表される

  • タイプ: 1: 卵 2: クリスタル 0:それ以外
  • initialResources: ここにあるクリスタル/卵の量。
  • 6つのneigh変数: 6つそれぞれが各方向に対応し、隣接セルのインデックスを含む。隣接セルがない場合-1(Level2 WOOD2)

次の行: numberOfBases このリーグでは1が与えられる。
次の行: numberOfBases 自軍の拠点が存在するセルのインデックスを表す整数。
次の行: numberOfBases 対戦相手の拠点が存在するセルのインデックスを表す整数。

毎ターンの入力

次のnumberOfCells行: 1つのセルにつき1行、セルのインデックスの順に並ぶ。1つのセルにつき3つの整数が入力として与えられる。

  • resources: そのセルにあるクリスタル/卵の量。
  • myAnts: そのセルにいる自軍のアリの数。
  • oppAnts : そのセルにいる対戦相手のアリの数。

出力

あなたの行うすべての行動を;で区切って1行で出力する。

  • BEACON index strength: 1ターン持続するビーコンを設置。
  • LINE index1 index2 strength: 2つのセル間の道筋に沿ってビーコンを配置する。
  • WAIT: 何もしない。
  • MESSAGE: 自軍のHUDにテキストを表示します。

制約

numberOfBases = 1
各ターンの応答時間100ms
1ターン目の応答時間1000ms

5/26 17時ごろ ainemがWOOD1リーグに昇格し、LEVEL2のルールが開放されたので、追記しました(緑帯の文)