Настільна гра
У настільній грі « Каркассон » гравці розміщують плитки, підрівнюючи їх краї та заробляючи найвищі бали, створюючи великі суміжні ділянки місцевості. Нижче наведено (приблизно) типи та кількість плиток, що входять у гру:
#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 (кутові пікселі) під час обчислення суміжних площ. Також нехтуйте будівлями, тобто кольоровими ділянками, які вже повністю укладені в плитку.
Вхідні дані
Вхід - це два зображення:
Ігрова зона.
- Початкова ігрова площа складається з плитки
#11
(однієї плитки). - Розширена ігрова область, створена як вихід, також повинна підтримуватися як вхід.
- Початкова ігрова площа складається з плитки
Плитка, яку потрібно укласти.
- Усі приклади плитки повинні підтримуватися як вхідні дані.
Визначте відповідні краї / суміжний рельєф місцевості, використовуючи лише дані цього зображення. Немає жорсткого кодування.
Вихід
- Вихід - це зображення, що показує результуючу ігрову область після розміщення плитки.
- Зображення повинно бути сумісним з вашою власною програмою, тобто воно може використовуватися як введення ігрової зони.
- Якщо розмістити плитку неможливо, поверніть помилку.
Ви можете припустити, що
- Плитки завжди 55 px на 55 px
- Плитки завжди матимуть ті кольори, які зараз використовуються на прикладі плиток.
Примітки
- Ваша відповідь повинна містити приклад виведення після принаймні 2 пропусків (рекомендується більше).
- Це часткове та неточне відображення оригінальної настільної гри, вам не потрібно застосовувати жодне з правил та тактик, які не згадані тут.
Оцінка
- Ваш рахунок - це кількість байтів для вашого подання.
- Дані про зображення не включаються до вашої оцінки.
- Виграє найнижчий рахунок.
Гра в повну гру
Ви можете написати сценарій, який використовує ваш підрозділ, щоб грати в повну гру, яка може складатися з:
- Розміщення плитки вибрано псевдовипадково з повного набору 85.
- Повернення плитки до набору, якщо її неможливо розмістити.
- Повторюйте, поки не буде розміщена кожна плитка - або поки не вдасться розмістити дві плитки підряд.
Він не буде включений до вашого числа байтів або не покращить ваш рахунок, але я, швидше за все, запропонував би нагороду за такий вид відповіді.