13 марта признан Национальным днем драгоценностей , который является темой этого конкурса. Таким образом, учитывая целое , n
где n
больше 0, создать ASCII драгоценность. Например:
n = 1 n = 2 n = 3
______
____ / \
__ / \ \ /
/ \ \ / \ /
\ / \ / \ /
\/ \/ \/
Основание определяется как самое нижнее место драгоценного камня до самой высокой пары \/
. Остальное верх. Для приведенного выше примера, где n = 1
:
Bottom: \ / Top: __
\/ / \
Как вы можете видеть, дно состоит из n + 1
слоев \/
с (1 * lines from the bottom) * 2
промежутками между ними с максимумом n
линий от дна драгоценного камня. Если мы возьмем вторую драгоценность ( n = 2
), мы увидим, что:
____
/ \
\ / 2 (or n) layers from the bottom with 1*2*2 or 4 spaces in between \/
\ / 1 layer from the bottom with 1*1*2 or 2 spaces in between \/
\/ The bottom (0 layers) with 1*0*2 spaces or 0 spaces in between \/
Верх выполнен из одной пары /\
с n*2
пробелами между ними с n*2
подчеркиванием сверху.
правила
- Должен иметь возможность принимать любые ненулевые положительные целые числа как пользовательский ввод
- Необходимо создать драгоценный камень с использованием спецификаций, определенных выше (приведено здесь):
- Верх выполнен из одной пары
/\
сn*2
пробелами между ними сn*2
подчеркиванием сверху. - Дно состоит из
n + 1
слоев\/
с(1 * lines from the bottom) * 2
промежутками между ними с максимумомn
линий от нижней части драгоценного камня.
- Верх выполнен из одной пары
- Разрешенные символы новой строки после драгоценного камня или пробелы на каждой строке разрешены.
- Стандартные лазейки не допускаются
Критерии победы
Меньше байтов побеждает!
Ответы:
Древесный уголь , 17 байт
Код:
Объяснение:
Очень аккуратно команда
‖M
, которая также автоматически зеркала/
в\
.Использует кодировку древесного угля .
Попробуйте онлайн!
источник
05AB1E ,
2720 байтовПопробуйте онлайн!
объяснение
источник
D„/\„\/‡
наÂ
.Python 2,
1019895 байтПопробуйте онлайн!
Анонимная функция, которая принимает положительное целое число и возвращает строку
Python 3.6, 92 байта (спасибо Бену Франкелю)
Я не смог найти онлайн-переводчика для этой версии, но он немного короче из-за f-строк в v3.6
источник
lambda n:f' {"__"*n}\n/{" "*n}\\\n'+'\n'.join(' '*i+'\\'+' '*(n-i)+'/'for i in range(n+1))
. Воспользовавшись е-струнами.PHP, 123 байта
143 байта первая версия
Попробуй это здесь!
источник
V ,
282726 байт1 байт сохранен благодаря @DJMcMayhem с использованием
>
вместоÉ
<esc>
является0x1b
Попробуйте онлайн!
HexDump:
объяснение
Верхний:
Дно:
источник
É<space>
к>
которой в конце макроса неявно заполняется на>>
>
отступы на один пробел вместо одной вкладки?set expandtab
иset shiftwidth=1
Рёда , 71 байт
Попробуйте онлайн!
источник
JavaScript (ES6), 80 байт
источник
Python 3,
107105 байтПринимает int от Stdin
источник
MATL , 34 байта
Попробуйте это в MATL Online!
объяснение
источник
PowerShell ,
76, 74 байтаПримечание: онлайн-пример содержит небольшую упаковку в качестве демонстрации. Поместите в функцию или скрипт PoSH для выполнения.
Попробуйте онлайн!
источник
' '*$i++
вместо' '*($n-$_)
.C, 131 байт
Попробуйте онлайн!
источник
i,j;f(n){for(p(" ");i++<n*2;p("_"));for(p("\n/%*c\n",n*2+1,92);j++<n+1;p("%*c%*c\n",j,92,(n-j)*2+3,47));}
Pyth, 44 байта
попытайся!
объяснение
Код состоит из 3 частей:
источник
Python3, 104 байта
Программа берет целое число из STDIN и возвращает драгоценный камень в STDOUT.
источник
зернышко , 43 байта
42 байта кода, +1 для
-n
флага.Принимает ввод в качестве аргумента командной строки. Попробуйте онлайн!
объяснение
Создает первые две строки отдельно, затем оставшуюся часть драгоценного камня с помощью операции карты:
Другое решение
Также 42 + 1 байт, на этот раз с
-l
флагом:TIO
источник
Pyth, 38 байт
источник
C, 115 байтов
Попробуйте онлайн!
C, 123 байта
Хотя задача не требует этого, за счет 8 байтов функцию можно сделать многоразовой (первое решение экономит 8 байтов, полагаясь на неявную инициализацию глобальных переменных).
Попробуйте онлайн!
источник
Пакетный, 152 байта
тесты:
источник
C #, 187 байт
Я уверен, что есть более компактное решение, но это моя первая попытка:
Попробуйте онлайн
источник
JavaScript (ES6), 93 байта
демонстрация
Показать фрагмент кода
источник
постоянный ток , 121 байт
Попробуйте онлайн!
источник
Perl 5
10994 + 1 (для флага -p) = 95 байтПопробуйте онлайн!
Можно запустить так:
Ungolfed
объяснение
источник