Я не люблю печатать, поэтому я рисую лабиринты в очень простом формате:
# #####
# #
# ### #
# # # #
# # #
##### #
Разве это не лабиринт ? Конечно, я думаю, что все лабиринты должны выглядеть трехмерными, похожими, но не такими, как эта задача , для максимальной лабиринтности , поэтому я (неохотно) вручную обновил лабиринт, чтобы он выглядел так:
+-----+ +-----------------------------+
|\ \ |\ \
+ \ \ + \ \
\ \ \ \ +-----------------------+ \
\ \ \ \| |\ \
\ \ \ +-----------------------+ \ \
\ \ \ +-----------------+ \ \ \
\ \ \ |\ \ \ \ \
\ \ \ + \ \ \ \ \
\ \ \ \ \ +-----+ \ \ \ \
\ \ \ \ \ \ |\ \ \ \ \
\ \ \ \ \ \---+ \ \ \ \ \
\ \ \ \ +-----+ \ \ \ \ \ \
\ \ \ \| | \ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \
\ \ +-----------------+ \ \ \ \
\ \ \ \ \ \
\ \ \ \ \ \
\ +-----------------------------+ \ +-----+
\| | \| |
+-----------------------------+ +-----+
К сожалению, трудно работать с лабиринтами в этом формате, и после всего этого ручного набора текста я не хочу просто перепечатывать оригинал, поэтому мне нужно, чтобы вы написали программу для меня.
правила
- Ввод будет многострочная строка или символ матрицей , состоящая только из
" "
,"|"
,"\"
,"+"
,"-"
, и переводов строк. - Выход состоит из
" "
и"#"
, по шаблону, описанному лабиринтом. - Благодаря моим удивительным навыкам проектирования лабиринта, вы ничего не можете предположить о структуре лабиринта, кроме того, что он имеет действительную деконструкцию.
- В 3d-обозначении (процесс, который вы теперь должны отменить) каждый из них
#
был преобразован в этот блок символов 3x4x7:+-----+ |\ \ + \ \ \ +-----+ \| | +-----+
- Соседние блоки были объединены, как это:
но без объединения строк, так что на самом деле это выглядит так:+-----+-----+ |\ \ \ + \ \ \ \ +-----+-----+ \|\ \ \ + \ \ \ \ +-----+-----+ \| | | +-----+-----+
+-----------+ |\ \ + \ \ \ \ \ \ \ \ \ \ \ \ +-----------+ \| | +-----------+
- Вогнутые пространства иногда блокируют части других стен.
+-----------+ |\ \ + \ \ \ \ +-----+ \ \ \ | \ \ \---+ \ +-----+ \| | +-----+
- Конечный пробел на входе или выходе является приемлемым. (Вы должны указать, требует ли ваш ответ запаздывающих пробелов во входных данных.)
- Ведущие пробелы должны соответствовать пустым пробелам на входе.
- Я до сих пор не люблю печатать, поэтому выигрывает самый короткий код
Тестовые случаи:
Input:
+-----+ +-----------------------------+
|\ \ |\ \
+ \ \ + \ \
\ \ \ \ +-----------------------+ \
\ \ \ \| |\ \
\ \ \ +-----------------------+ \ \
\ \ \ +-----------------+ \ \ \
\ \ \ |\ \ \ \ \
\ \ \ + \ \ \ \ \
\ \ \ \ \ +-----+ \ \ \ \
\ \ \ \ \ \ |\ \ \ \ \
\ \ \ \ \ \---+ \ \ \ \ \
\ \ \ \ +-----+ \ \ \ \ \ \
\ \ \ \| | \ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \
\ \ +-----------------+ \ \ \ \
\ \ \ \ \ \
\ \ \ \ \ \
\ +-----------------------------+ \ +-----+
\| | \| |
+-----------------------------+ +-----+
Output:
# #####
# #
# ### #
# # # #
# # #
##### #
Input:
+-----+
|\ \
+ \ \
\ +-----+
\| |
+-----+
Output:
#
Input:
+-----------------+
|\ \
+ \ \
+-----+ +-----+ +-----+
|\ \ |\ \
+ \ \---+ \ \
\ \ +-----+ \ +-----+ \
\ \ \ | \| |\ \
\ \ \---+ +-----+ \ \
\ \ +-----+ +-----+ \
\ \ \ |\ \
\ \ \ + \ \
\ +-----+ +-----+ +-----+
\| |\ \ |
+-----+ \ \---+
\ +-----------------+
\| |
+-----------------+
Output:
###
## ##
# #
## ##
###
Input:
+-----------------------------------------------------------------------------------------------------+
|\ \
+ \ \
\ +-----------------------------------------------+ +-----------------------------------------+ \
\| |\ \ |\ \
+-----------------------------------------------+ \ \---------------------------------------+ \ \
+-----+ +-----------------------------+ \ \ \ +-----------------------------+ \ \ \
|\ \ |\ \ \ \ \ |\ \ \ \ \
+ \ \ + \ \ \ \ \ + \ \ \ \ \
\ \ \ \ +-----------+ +-----+ \ \ \ \ \ +-----------------------+ \ \ \ \
\ \ \ \| |\ \ |\ \ \ \ \ \| |\ \ \ \ \
\ \ \ +-----------+ \ \---+ \ \ \ \ \ +-----------------------+ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \ \ \ +-----------------------+ \ \ \ \ \ \
\ \ \ |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ + \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ +-----+ \ \ \ \ \ \ \ +-----------------------------+ \ \ \ \ \ \
\ \ \ \| | \ \ \ \ \ \ \| | \ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \ +-----------------------------+ \ \ \ \ \ \
\ \ +-----------+ \ \ \ \ \ +-----------------------------------+ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ +-----------+ \ \ \ \ \ +-----------------------+ +-----+ \ \ \ \ \ \
\ \ \ | \ \ \ \ \ \ |\ \ | \ \ \ \ \ \
\ \ \---------+ \ \ \ \ \ \---------------------+ \ \---+ \ \ \ \ \ \
\ \ \ +-----------+ \ \ \ \ +-----------+ \ \ \ +-----+ \ \ +-----+
\ \ \ |\ \ \ \ \ |\ \ \ \ \ |\ \ \| |
\ \ \ + \ \ \ \ \ + \ \ \ \ \ + \ \ +-----+
\ \ \ \ +-----------------+ \ \ \ \ \ \ \ +-----+ \ +-----+ \
\ \ \ \| | \ \ \ \ \ \ \| | \| |\ \
\ \ \ +-----------------+ \ \ \ \ \ \ +-----+ +-----+ \ \
\ \ +-----------------------------+ +-----+ +-----------------------+ +-----------+
\ \ \
\ \ \
\ +-----------------------------------------------------------------------------------------------------+
\| |
+-----------------------------------------------------------------------------------------------------+
Output:
#################
# #
# ##### # ##### #
# # # # # #
# # # # ##### # #
# # # # #
### # ####### # #
# # # # # #
# ### # ## # ##
# # ## #
#################
Input:
+-----------------+
|\ \
+ \ \
\ \ \
\ \ \
\ \ \
\ \ \
\ \ \
\ \ \
\ +-----------------+
\| |
+-----------------+
Output:
###
###
###
Input: (Note leading whitespace)
+-----+ +-----+
|\ \ |\ \
+ \ \ + \ \
+-----+-----+-----+-----+
|\ \ |\ \ |
+ \ \---+ \ \---+
\ +-----+-----+-----+-----+
\| |\ \ |\ \
+-----+ \ \---+ \ \
+-----+-----+-----+-----+
|\ \ |\ \ |
+ \ \---+ \ \---+
\ +-----+ \ +-----+
\| | \| |
+-----+ +-----+
Output:
# #
# #
# #
# #
Ответы:
Python 2 , 81 байт
Попробуйте онлайн!
Вводит в виде списка строк (или списка списков символов). Печатает вывод, заканчивающийся с ошибкой.
Идея похожа на тш . Мы смотрим на символы, помеченные как
?
ниже, чтобы увидеть, какие пробелы, а какие\
:В каждом ряду с
?
символом «s»\
отмечается вертикальный гребень между заполненной ячейкой и пустой ячейкой лабиринта. Поскольку эти гребни находятся в верхнем слое лабиринта, их\
символы никогда не скрываются другим элементом лабиринта.Чтобы посмотреть на
?
позиции, код перебирает строкиk=1,4,7,...
(с нулевым индексом), и в каждой строке просматривает каждую 6-ю позицию, начиная с позицииk
. Он отслеживает, находится ли мы в пустой или полной ячейке в битеb
, и переворачивает этот бит всякий раз, когда\
встречается a . После каждого прочитанного символа он добавляет символ для empty () или full (
#
) в соответствии сb
и печатает результирующую строку после завершения строки.источник
JavaScript (Node.js) , 85 байт
Попробуйте онлайн!
Основная идея такова: мы заботимся только о персонажах( 6 х + 3 у+ 3 , 3 г) , Если это тире (
-
), текущая ячейка имеет другое значение с той, что находится на ее вершине, и если это пробел (), текущая ячейка имеет то же значение.
Спасибо @ Arnauld , спас 7 байтов
источник
Желе ,
2220 байтПопробуйте онлайн!
Монадическая ссылка, принимающая строку Jelly в качестве входных данных и возвращающая обработанный лабиринт в виде строки Jelly, включая один ряд конечных пробелов.
1 байт
Ḋ
может быть сохранен, если допустима одна строка начальных пробелов.Получил вдохновение от формулы @ tsh , обязательно добавьте и ее!
объяснение
источник
05AB1E ,
2522 байта-1 байт благодаря Кевину Круйссену
Попробуйте онлайн!
Порт xnor Python ответ . Принимает ввод в виде матрицы символов. Ссылка TIO показывает ввод в виде многострочной строки для удобства чтения, а
|€S
заголовок преобразует ее в формат матрицы символов.источник
ε'\¢„ #sè}
доðм€g„ #sè
м
аK
.Сетчатка 0.8.2 , 72 байта
Попробуйте онлайн! Объяснение:
Отклоните все линии.
Удалите последние три строки, так как они мне не нужны.
Держите только середину каждой группы из трех строк. (Я полагаю, что в Retina 1 два вышеупомянутых этапа можно выполнить за один этап:.
,G1,3,-5`
)Заполните грани блоков.
Оставьте только второй символ каждого блока.
источник
C (лязг) ,
120117 байтовПопробуйте онлайн!
Вдохновленный ответами других.
источник