Соревнование
Ваша программа или функция будет принимать однострочный ввод из STDIN или параметр функции. Вы можете предполагать, что ввод будет содержать только буквенные символы (a-zA-Z), пробелы и точки остановки. Ввод нечувствителен к регистру, поэтому вы должны обращаться с «a» точно так же, как с «A».
Для каждого символа в строке вы будете выводить представление здания согласно следующей спецификации.
Каждое здание должно иметь крышу, обозначенную подчеркиванием в верхней строке, затем косой чертой, пробелом, обратной косой чертой во второй строке.
_
/ \
Затем у вас будет несколько этажей, соответствующих буквенному номеру (a = 1, b = 2, c = 3 и т. Д.), Которые представлены стеной (|) с каждой стороны и пробелом в середине. Нижний этаж (и только нижний этаж) должен иметь фундамент, который является подчеркиванием между стенами. Так...
|_|
Так, например, «б» будет выглядеть так
_
/ \
| |
|_|
Теперь мы знаем, что очень высокие узкие здания не могут стоять и должны становиться шире у основания, поэтому ни одно здание не может стоять более трех этажей без какой-либо дополнительной поддержки. Таким образом, каждые три уровня (не меньше) вы должны добавить «расширяющийся слой». Расширяющийся слой состоит из косой черты и обратной косой черты непосредственно над стенками секции под ним, а секция внизу должна быть на два пространства шире, чем секция выше. Дополнительный слой не учитывается по высоте здания.
Здания не должны пересекаться, но между ними не должно быть лишних пространств, а земля всегда плоская, поэтому все здания должны располагаться на одном уровне.
Например, abcdefga будет выглядеть следующим образом.
_
/ \
_ | |
_ / \ | |
_ / \ | | | |
/ \ | | | | / \
_ | | | | | | | |
_ / \ | | | | / \ | |
_ / \| | | | / \| | | | _
/ \| || |/ \| || |/ \/ \
|_||_||_||___||___||___||_____||_|
Пробелы в строке ввода должны быть представлены двойным пробелом.
Полные остановки в строке ввода должны быть представлены как щебень.
/\/\
Дальнейшие примеры
Вход = Hello world.
Выход =
_
/ \
| |
| |
| |
/ \
| |
| | _
| | / \
/ \ | |
| | | |
_ | | _ | |
/ \ | | / \ / \
| | / \ | | | |
| | | | | | | |
_ _ | | | | | | | | _
/ \ / \ / \ | | / \ / \ / \
| | | | | | / \ | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
_ / \ / \ / \ | | / \ / \ / \
/ \ | | | | | | / \ | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | _ / \ / \ / \ | | / \ / \ / \
/ \ / \ | | | | | | / \ | | | | | | _
| | | | | | | | | | | | | | | | | | / \
| | | | | | | | | | | | | | | | | | | |
| | | | / \/ \/ \ | | / \/ \/ \ | |
/ \/ \| || || | / \| || || | | |
| || || || || | | || || || |/ \
|_____||___||_______||_______||_________| |_______________||_________||___________||_______||___|/\/\
Вход = lorem ipsum
_
/ \
_ | |
/ \ | |
_ | | | |
/ \ | | / \
| | _ | | | |
| | / \ / \ | |
_ | | | | | | | |
/ \ / \ | | | | / \
| | | | _ | | | | | | _
| | | | / \ / \ / \ | | / \
_ | | | | | | | | | | | | | |
/ \ / \ / \ | | | | | | / \ | |
| | | | | | | | | | | | | | | |
| | | | | | / \ / \ / \ | | / \
| | | | | | | | _ | | | | | | | |
/ \ / \ / \ | | / \ | | | | / \ | |
| | | | | | | | | | | | | | | | | |
| | | | | | / \ | | / \ / \ | | / \
| | | | | | | | | | | | | | | | | |
/ \ / \ / \ _ | | / \ | | | | / \ | |
| | | | | | / \ | | | | | | | | | | | |
| | | | | | | | / \ | | / \ / \ | | / \
| | | | | | | | | | | | | | | | | | | |
/ \/ \/ \ | | | | / \ | | | | / \ | |
| || || |/ \ | | | | | | | | | | | |
| || || || |/ \ | |/ \/ \| |/ \
|_______||_________||___________||___||_________| |_____||___________||_____________||_____________||_________|
Вход = a.a.a.x.x.x.a.a.a
_ _ _
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
_ _ _ | | | | | | _ _ _
/ \ / \ / \ | | | | | | / \ / \ / \
|_|/\/\|_|/\/\|_|/\/\|_______________|/\/\|_______________|/\/\|_______________|/\/\|_|/\/\|_|/\/\|_|
правила
- Конечно, это кодовый гольф, выигрывает самая низкая оценка в байтах
- Применяются стандартные правила лазейки
- Допускается любое количество дополнительных пустых строк до или после вывода
- Вы можете выбрать вывод всего результата в одну строку или предложить вывод в виде массива, где каждый элемент представляет одну строку вывода, или отправить в STDOUT
Заметка
Это мой первый пост в PPCG, поэтому, пожалуйста, будьте осторожны со мной. Это было через песочницу. Любые негативные моменты или возможные улучшения, пожалуйста, напишите в качестве комментария, и я сделаю все, что могу
[a,z]
, [1.26]
частей , на Mego упоминается. Наличие его необязательно часто является лучшим (если только это не ключевая часть задачи (ее здесь нет).
[a,z]
и[A,Z]
в[1,26]
кажется бессмысленным требование. Было бы намного лучше просто использовать целые числа списка в качестве входных данных (имея в0
качестве входных данных для щебня). Кроме того, публикация вашего запроса после того, как он находился в Песочнице в течение всего 21 часа , без ожидания получения каких-либо голосов или отзывов от более чем одного пользователя, не засчитывается как «прошедший через песочницу». Рекомендуется оставлять задания в Песочнице минимум на 48-72 часа, чтобы у людей было достаточно времени для их рассмотрения.