Любой обычный шестиугольник может быть облицован бриллиантами, например, так:
______
/_/_/\_\
/_/\_\/\_\
/\_\/_/\/_/\
\/_/\_\/_/\/
\_\/_/\_\/
\_\_\/_/
Мы рассмотрим вышеупомянутое значение размера 1(так как стороны алмазов сделаны из одного /или \каждого). Такой же размер 2будет выглядеть так:
____________
/ / /\ \
/___/___/ \___\
/ /\ \ /\ \
/___/ \___\/ \___\
/\ \ / /\ / /\
/ \___\/___/ \/___/ \
\ / /\ \ / /\ /
\/___/ \___\/___/ \/
\ \ / /\ \ /
\___\/___/ \___\/
\ \ \ / /
\___\___\/___/
Ваша задача - получить в 1качестве входных данных такую мозаику ASCII (размером ), а также положительное целое число N(в десятичной или одинарной форме ), указывающее размер требуемого вывода. Затем вы должны вывести уменьшенную версию той же самой плитки.
Обратите внимание, что шестиугольник может быть любого размера и размером до 1x1x1 (содержит три бриллианта).
Ни входные данные, ни выходные не должны содержать никаких завершающих пробелов, ни больше начальных пробелов, чем необходимо для выравнивания формы шестиугольника. И ввод, и вывод могут опционально содержать один завершающий символ новой строки (этот выбор не должен быть одинаковым для ввода и вывода).
Вы можете написать программу или функцию, принимая ввод через STDIN (или ближайшую альтернативу), аргумент командной строки или аргумент функции и выводя результат через STDOUT (или ближайшую альтернативу), возвращаемое значение функции или параметр функции (out).
Это код гольф, поэтому самый короткий ответ (в байтах) в выигрыше.
Пример Tilings
Вот несколько вариантов ввода, которые вы можете использовать для проверки вашего представления.
__
/_/\
\_\/
____
/_/\_\
/\_\/_/\
\/_/\_\/
\_\/_/
______
/_/_/\_\
/_/\_\/\_\
/\_\/_/\/_/\
\/_/\_\/_/\/
\_\/_/\_\/
\_\_\/_/
________
/_/\_\_\_\
/\_\/\_\_\_\
/\/_/\/_/_/\_\
/\/\_\/_/_/\/\_\
\/\/_/\_\_\/\/_/
\/\_\/_/\_\/_/
\/\_\_\/_/_/
\/_/_/_/_/
Следующий фрагмент содержит соответствующие выходы для входов N = 1через N = 6.
N-1ведущие пустые строки. :(