Настольная игра
В настольной игре « Каркассон » игроки размещают плитки, сопоставляя их края, и получают самые высокие баллы, создавая большие непрерывные участки местности. Ниже приведены (примерно) типы и количество плиток, включенных в игру:
#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 градусов.
Edge-согласование
- Края размещенной плитки должны соответствовать соприкасающимся краям (до 4) соседних плиток, т. Е. Сенсорные пиксели имеют одинаковый цвет.
Смежная местность
- «Закрытие области местности» относится к размещению плитки таким образом, чтобы любая непрерывная цветная область не могла быть затем продолжена при дальнейшем размещении плитки.
- Если возможно альтернативное размещение, оно должно быть выбрано над любым размещением плитки, которое будет закрывать область местности.
- Если вам нужно выбрать из нескольких мест закрытия, выберите любое. Если вам нужно выбрать между несколькими закрытыми местами размещения, выберите любое.
- Не учитывать # ff00ff (угловые пиксели) при расчете смежных областей. Также не обращайте внимания на здания, то есть участки цвета, которые уже полностью заключены в плитку.
вход
Ввод двух изображений:
Игровая площадка.
- Начальная игровая зона состоит из плитки
#11
(одной плитки). - Расширенная игровая зона, созданная как выходная, также должна поддерживаться как входная.
- Начальная игровая зона состоит из плитки
Плитка для размещения.
- Все примеры плиток должны поддерживаться в качестве входных данных.
Определите совпадающие края / смежную местность, используя только эти данные изображения. Нет жесткого кодирования.
Выход
- Выход - изображение, показывающее результирующую игровую зону после размещения плитки.
- Изображение должно быть совместимо с вашей собственной программой, т. Е. Оно может использоваться как вход игровой зоны.
- Если невозможно разместить плитку, верните ошибку.
Вы можете предположить, что
- Плитка всегда 55 пикселей на 55 пикселей
- Плитки будут только отображать цвета, используемые в данный момент в примерах плиток.
Заметки
- Ваш ответ должен содержать пример вывода по крайней мере через 2 прохода (рекомендуется больше).
- Это частичный и неточный рендеринг оригинальной настольной игры, вам не нужно применять какие-либо правила или тактики, не упомянутые здесь.
Гол
- Ваша оценка - это количество байтов вашей заявки.
- Данные изображения не включены в ваш счет.
- Самый низкий балл побеждает.
Играть в полную игру
Вы можете написать сценарий, который использует ваше подчинение, чтобы играть в полную игру, которая может состоять из:
- Размещение плитки выбрано псевдослучайно из полного набора 85.
- Возврат плитки к набору, если она не может быть размещена.
- Повторяется до тех пор, пока не будет размещена каждая плитка - или пока две плитки подряд не могут быть размещены.
Он не будет включен в ваш счетчик байтов или улучшит ваш счет, но я, скорее всего, предложу вознаграждение за такой ответ.