ボードゲーム
ボードゲーム「カルカソンヌ」では、プレーヤーはエッジを一致させてタイルを配置し、地形の大きな連続した領域を作成することで最高のスコアを獲得します。以下は(大体)ゲームに含まれるタイルの種類と数量です。
#01
x4
#02
x5
#03
x8
#04
x2
#05
x9
#06
x4
#07
x1
#08
x3
#09
x3
#10
x3
#11
x4
#12
x5
#13
x3
#14
x3
#15
x2
#16
x5
#17
x5
#18
x2
#19
x3
#20
x1
#21
x5
#22
x2
#23
x1
#24
x1
#25
x1
タスク
地形の可能な限り最大の連続した領域を維持しようとしながら、エッジを一致させてタイルを配置する必要があります。
配置
- タイルは、プレイエリア内の既存のタイル(またはタイル)に隣接する(最大4つの)空白スペースのいずれかにのみ配置できます。
- タイルは90度、180度、または270度回転できます。
エッジマッチング
- 配置されたタイルの端は、隣接するタイル(最大4つ)の接触端と一致する必要があります。つまり、接触ピクセルは同じ色です。
連続した地形
- 「地形の領域を閉じる」とは、タイルを配置することを指します。これにより、隣接する色の領域がさらにタイル配置を続けることができなくなります。
- 代替配置が可能な場合、地形のエリアを閉じるタイル配置よりも選択する必要があります。
- 複数の終了プレースメントから選択する必要がある場合は、いずれかを選択します。多数の閉じていないプレースメントから選択する必要がある場合は、いずれかを選択します。
- 連続領域を計算するときは#ff00ff(コーナーピクセル)を無視します。また、建物、つまりタイルで既に完全に囲まれている色の領域も無視してください。
入力
入力は2つの画像です。
プレイエリア。
- 最初のプレイエリアはタイル
#11
(単一のタイル)で構成されています。 - 出力として作成された拡張プレイエリアも入力としてサポートされる必要があります。
- 最初のプレイエリアはタイル
配置するタイル。
- サンプルタイルはすべて、入力としてサポートされる必要があります。
この画像データのみを使用して、一致するエッジ/連続した地形を決定します。ハードコーディングなし。
出力
- 出力は、タイルを配置した後の結果の再生領域を示す画像です。
- 画像は、独自のプログラムと互換性がある必要があります。つまり、再生領域の入力として使用できます。
- タイルを配置できない場合は、エラーを返します。
あなたはそれを仮定することができます
- タイルは常に55ピクセルx 55ピクセルです
- タイルには、サンプルタイルで現在使用されている色のみが表示されます。
ノート
- あなたの答えは、少なくとも2回のパスの後の出力例を特徴とする必要があります(もっと推奨されます)。
- これは、元のボードゲームの部分的かつ不正確なレンダリングです。ここで言及されていないルールや戦術を適用する必要はありません。
スコア
- スコアは提出のバイト数です。
- 画像データはスコアに含まれません。
- 最低スコアが勝ちます。
完全なゲームをプレイする
サブミッションを使用して完全なゲームをプレイするスクリプトを作成できます。
- 85の完全なセットから擬似ランダムに選択されたタイルを配置します。
- 配置できない場合は、タイルをセットに戻します。
- すべてのタイルが配置されるまで、または連続する2つのタイルを配置できなくなるまで繰り返します。
バイトカウントに含まれたり、スコアを改善したりすることはありませんが、この種の答えには賞金を提供する可能性があります。