Настольная игра
В настольной игре « Каркассон » игроки размещают плитки, сопоставляя их края, и получают самые высокие баллы, создавая большие непрерывные участки местности. Ниже приведены (примерно) типы и количество плиток, включенных в игру:
#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.
- Возврат плитки к набору, если она не может быть размещена.
- Повторяется до тех пор, пока не будет размещена каждая плитка - или пока две плитки подряд не могут быть размещены.
Он не будет включен в ваш счетчик байтов или улучшит ваш счет, но я, скорее всего, предложу вознаграждение за такой ответ.


