Трампу нужна стена, и вы собираетесь это сделать! Чтобы наиболее эффективно построить его стену, я создал простой повторяемый шаблон для вас:
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
Трамп скажет вам, сколько сегментов стены ему нужно, и вы построите их так, как это выглядит.
Вот образец:
__ __ <-- 4-2-3-2-4 ' _ _ '
| |_| | <-- 3-1-2-1-1-1-2-1-3 ' | |_| | '
___| |___ <-- 3-1-7-1-3 '_| |_'
- - - - <-- 1-3-1-3-1-3-1-1 '- - - - '
- - - - - - - <-- 1-1-...-1-1 ' - -...- - '
- - - - - - - - <-- 1-1-...-1-1 '- - ... - -'
——————————————— <-- 15 Unicode U+2014
Ввод всегда будет целым числом> 0.
Тестовые случаи:
1
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
2
__ __ __ __
| |_| | | |_| |
___| |______| |___
- - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -
——————————————————————————————
5
__ __ __ __ __ __ __ __ __ __
| |_| | | |_| | | |_| | | |_| | | |_| |
___| |______| |______| |______| |______| |___
- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -
———————————————————————————————————————————————————————————————————————————
Поскольку вам нужно сделать это быстро, напишите самую короткую из возможных программ!
Если это поможет, я сначала написал вызов, а последний заголовок;)
источник
JavaScript (ES6),
116115 байтовСохраненный байт благодаря @Neil !
объяснение
Практически так же, как метод CJam @Mauris , но без сопоставления символов.
Детали стен в формате:
потому что если вы повторите каждую строку 15 раз, вы получите:
и после нарезки до последних 15 символов вы получите:
Ungolfed
Контрольная работа
Показать фрагмент кода
источник
.slice(-15)
вместо этого?__ __ n| |_| | n| |___n - n- n -n—
Джольф , 135 байт
Значительное гольф может быть сделано.Отключите красивую печать и очистите вывод для лучшего результата. Попробуй это здесь! , Кроме того, используйте это для более простого тестирования произвольного числа.Я добавлю объяснение позже.
источник
Haskell,
116118108 байтПример использования:
Здесь используется та же стратегия, что и в других ответах: каждая строка стены представляет собой один цикл шаблона, например, «-» (тире + пробел) для второй последней строки. Повторите каждый шаблон, возьмите 15 символов, чтобы получить один сегмент стены, повторите еще раз и возьмите
15*n
символы дляn
сегментов.Редактировать: @Mauris нашел 10 байтов. Спасибо!
источник
Утилиты Bash + Linux (
247186180 байт)Поскольку непечатаемые символы были щедро использованы при создании вышеприведенного скрипта, вот hexdump:
источник
PowerShell,
103100 символов (105 байт на диске, 102 без спецификации)Практически так же, как метод @ user81655 .
Неуправляемая версия
Пример использования
источник
param($c);' __ __n | |_| |n___| |n- n -n- n—'-split'n'|%{-join($_*15)[0..14]*$c}
PHP 5.4, (
182175 символов)Безголовая версия
[7 символов, сохраненных в соответствии с предложением Blackhole. ]
Другая версия с меньшим количеством байтов, но большим количеством символов
PHP 5.4 (176 символов, 178 байт)
Просто замените 15 экземпляров m-dash на один dash с помощью функции str_repeat
источник
$s
, используйте ее непосредственно в цикле:foreach([…,…] as $d)
2) Удалите пробел до тех пор, пока$d
:foreach(… as$d)
3) Используйте символ новой строки вместо"\n"
.C, 148 байтов
Оценка исключает ненужный перевод строки, перед
f(n)
которым включен для наглядности.магические числа в
p
кодируют символы для стены в базе 4, которые восстанавливаются из строки" -|_"
0,1,2,3 соответственно16843009
в шестнадцатеричном виде есть0x1010101
. это используется для строк с-
ними.Поскольку
_
кодируется как3
, нижняя строка может быть закодирована просто как-1
, который является числом со всеми установленными битами1
.источник
#define q
и просто жестко кодируя значения.Витси , 121 байт
Как я это делаю, получая доступ к каждой строке по одному разу, давая мне стеки с содержимым каждой строки. Затем я выводил строку за раз. Если кто-то хочет, чтобы я дал более подробное объяснение, просто спросите (я сейчас открываю подарки, так что ...).
Попробуйте онлайн!
источник
PHP5,5,
182172 байта168 байтовоснованный на ответе @ kuldeep.kamboj, который на самом деле составляет 212 байт на момент написания этого текста, но 182 символа. Хотелось бы, чтобы стена была чуть выше, тогда я мог бы провести еще большую оптимизацию ;-)
это 168 байт, благодаря @ JörgHülsermann
Это 172 байта
Это 182 байта :-)
негольфированная версия
источник
$x=$r(' ',3);
можно сократить до$x=' ';
as$z
Python 3,
132122120 байтовUngolfed:
источник
)for s in[
...Python 2, (161 символ, 191 байт)
источник
SOGL V0.12 , 32 байта
Попробуй здесь!
Объяснение:
источник
Vim, 90 ключей
Предполагая, что ввод находится в буфере сам по себе, следующее сделает работу (перевод строки только для удобства чтения)
где
^M
есть return,^[
есть escape,^K
есть ctrl+kи^V
есть ctrl+v.Скорее всего, это может быть несколько упущено, так как могут быть гораздо лучшие способы генерирования паттерна.
источник
Java 11,
236235231229 байтПопробуйте онлайн.
ПРИМЕЧАНИЕ: Java 11 еще не на TIO, поэтому
String.repeat(int)
был эмулирован сrepeat(String,int)
(для того же количества байтов).Объяснение:
источник
Powershell + файл, 92 байта
сохранить PowerShell в
get-trumpwall.ps1
(40 байт)сохранить файл данных с именем
f
и данными, содержит только символ Unicode и Linux LF (52 байта):шестнадцатеричный дамп:
Пример использования
источник