tsukammoの収穫記

上下左右の更地にアルゴリズムを

codingame:Fall Challenge 2020 ルール要約&内部パターン紹介

これはなに?

お題のゲームを解くプログラムを各自が作成、サイト上に提出して順位を競い合うゲームAIコンテストCodinGame「Fall Challenge 2020」について、ルール要約と予め設定されている内部パターンについて紹介します。 ※記載内容の保証はし兼ねるので、自己責任で読んでください。
コンテストページ:https://www.codingame.com/contests/fall-challenge-2020
コンテスト期間:11月13日~11月24日 f:id:tsukammo:20201113023607p:plain

(本ゲームは、素材を集めて注文された商品を作成していく「お店経営シミュレーション」がモチーフです。)
(類似のボードゲームがあるそうです。https://bodoge.hoobby.net/market/items/239)
ゲーム終了時に相手よりも多くのルピーを稼いでいれば勝ちです。

ルール説明

各プレイヤーは魔女を操作し、自分の手持ちのポーション素材と学習した呪文を駆使してルピーを稼いで下さい。各呪文は、素材の入手に活用することができます。 注文は常に5つ表示され、素材を消費して注文通りのポーションを作ることで、指定のルピーを稼ぐことができます。 各プレイヤーは、ターン毎に同時に1つのアクションを実行します。

素材

ポーション素材は全部で4種類あり、基本的に上位の素材を作成するために下位の素材を消費します。 より高価なポーションの作成には、よりレベルの高い素材が要求されます。 各魔女は最大10個まで素材をためておくことができます。

アクション

毎ターン、以下のいずれかのアクションを行うことができます。

  • LEARN:魔法の書庫から新しい呪文を学ぶ。
  • CAST:学習した呪文を1つ使う。※一度仕様した呪文は休息を取るまで使用不可となります。
  • REST:休息をとって、以前に唱えた呪文をすべてリフレッシュする。
  • BREWポーションを生成してルピーを稼ぐ。
  • WAIT:何もせず、ターンをスキップする。

あるターンにそれぞれの魔女が同じアクションをしたとき、双方のアクションが実行されます。

CAST:呪文を唱える

各呪文には4つの数字があり、使用時の各素材毎の増減を表します。

  • 正の数字は使用時に増える素材の量です。
  • 負の数字は使用時に消費される素材の量です。

例えば、-1,1,0,0と書かれた呪文は、レベル0の素材を消費して、レベル1の素材を産み出すことを意味します。

ゲーム中に何度でも呪文を使用できますが、一度唱えた呪文は休息を取るまで使用することができなくなります。 呪文の中には一度に連続使用可能なものがあります。

なお、ゲーム開始時には常に同じ4つの基本呪文が使用可能です。

LEARN:呪文の学習

魔法の書庫は常に6つの呪文が用意されています。どちらかの魔女が呪文を覚えた場合、その呪文は書庫から消失し、もう片方の魔女は覚えることができなくなります。

各魔女が呪文を覚える際、書庫の利用には制限がかかります。

  • どちらかの魔女が書庫を利用するまで、全ての呪文は自由に学ぶことができる。
  • 書庫の最初の呪文(下から1番目)は自由に学習できる。それ以上の呪文を覚えるには、「先読み税」を支払う必要がある。

例えば、下から4番目の呪文を覚える場合、手待ちレベル0素材から1番目、2番目、3番目の呪文に1つずつ素材を支払います。税が支払えない場合、学習に失敗します。 税が支払われた呪文を覚えるたびに、その呪文の素材も獲得し、次のターンに使えるようになります。もし、魔女の素材が溢れる場合、余った分は捨てられます。

呪文は規定の種類がありますが、書庫に現れる順番はランダムです。

REST:休息

休息することで一度使用した呪文をリキャストできるようになります。

BREWポーション作成

注文されたポーションに必要な素材を消費して、ルピーを獲得します。 消費量はマイナスの数字で表され、正の値になることはありません。 例えば、Delta = -2, -1, 0, 0の注文は、ポーションを作るために2つのレベル0の素材と1つのレベル1の素材を消費しなければならないことを意味します。

どの注文のポーションでも作成できますが、緊急度の高い左側の注文は、緊急ボーナスを得ることができます。ボーナスの仕組みは以下の通りです。

  • 1番左の注文のポーションを作成すると+3ルピーのボーナスが与えられます。これはゲーム中に4回しか発生しません。
  • 左から2番目の注文おnポーションを作ると+1 ルピーのボーナスが与えられます。これもゲーム中に4回しか発生しません。
  • ただし、1番左に与えられる+3ボーナスを全て使い切った場合、+1のボーナスは2番目の注文ではなく1番目の注文に与えられます。

なお、同時にポーションを作成した場合、ボーナスは2回発生したとみなされます。最後の1回の場合、どちらもボーナスを取得します。

注文は規定の種類がありますが、現れる順番はランダムです。

勝利条件

少なくとも1人の魔女が6つのポーションを作成するか、100ターン経過でゲーム終了です。 ゲーム終了時、各魔女は手持ちのレベル1以上の素材1つにつき、1ルピーを得ます。 最も多くのルピーを持っているプレイヤーが勝者となります。

リーグ毎の特徴やルール開放

  • bronze:呪文の学習ができます。以降、6つの注文に応えた時点でゲームが終了します。
  • wood1:呪文が使用できます。3つの注文に応えた時点でゲームが終了します。
  • wood2:予め素材が与えられた状態で始まり呪文は使えません。2つの注文に応えた時点でゲームが終了します。

呪文と注文のパターン一覧

シミュレータにて予め定められた呪文と注文を紹介します。
※11/14にレベル1と2の値が訂正されました。
※11/17に19番目の呪文(id18)が更新されました。

呪文

左から各レベルの素材の増減です。素材消費のある呪文は全て連続使用可能です。

-3 0 0 1
3 -1 0 0
1 1 0 0
0 0 1 0
3 0 0 0
2 3 -2 0
2 1 -2 1
3 0 1 -1
3 -2 1 0
2 -3 2 0
2 2 0 -1
-4 0 2 0
2 1 0 0
4 0 0 0
0 0 0 1
0 2 0 0
1 0 1 0
-2 0 1 0
-1 -1 0 1
0 2 -1 0
2 -2 0 1
-3 1 1 0
0 2 -2 1
1 -3 1 1
0 3 0 -1
0 -3 0 2
1 1 1 -1
1 2 -1 0
4 1 -1 0
-5 0 0 2
-4 0 1 1
0 3 2 -2
1 1 3 -2
-5 0 3 0
-2 0 -1 2
0 0 -3 3
0 -3 3 0
-3 3 0 0
-2 2 0 0
0 0 -2 2
0 -2 2 0
0 0 2 -1

注文

左から各レベルの素材の消費量と、達成時の獲得ルピーです。

2 2 0 0: 6
3 2 0 0: 7
0 4 0 0: 8
2 0 2 0: 8
2 3 0 0: 8
3 0 2 0: 9
0 2 2 0: 10
0 5 0 0: 10
2 0 0 2: 10
2 0 3 0: 11
3 0 0 2: 11
0 0 4 0: 12
0 2 0 2: 12
0 3 2 0: 12
0 2 3 0: 13
0 0 2 2: 14
0 3 0 2: 14
2 0 0 3: 14
0 0 5 0: 15
0 0 0 4: 16
0 2 0 3: 16
0 0 3 2: 17
0 0 2 3: 18
0 0 0 5: 20
2 1 0 1: 9
0 2 1 1: 12
1 0 2 1: 12
2 2 2 0: 13
2 2 0 2: 15
2 0 2 2: 17
0 2 2 2: 19
1 1 1 1: 12
3 1 1 1: 14
1 3 1 1: 16
1 1 3 1: 18
1 1 1 3: 20