Мне нравится ascii art, и мне очень скучно, поэтому я нашел несколько символов ascii и начал делать случайные вещи, 8-битный замок Марио, лабиринты и арки. Я обнаружил, что арки можно легко сложить аккуратно.
╔═══════╗
║╔═════╗║
║║╔═══╗║║
║║║╔═╗║║║
╨╨╨╨─╨╨╨╨
Вызов
Создайте программу, функцию или любой другой стандартный формат, который принимает целое число, которое больше или равно 0 (если вы не делаете бонус), и выводит ascii art с указанным количеством арок.
Тестовые случаи
Входные данные:
7
Выход:
╔═════════════╗
║╔═══════════╗║
║║╔═════════╗║║
║║║╔═══════╗║║║
║║║║╔═════╗║║║║
║║║║║╔═══╗║║║║║
║║║║║║╔═╗║║║║║║
╨╨╨╨╨╨╨─╨╨╨╨╨╨╨
Alt:
+-------------+
|+-----------+|
||+---------+||
|||+-------+|||
||||+-----+||||
|||||+---+|||||
||||||+-+||||||
||||||| |||||||
---------------
Входные данные:
1
Выход:
╔═╗
╨─╨
Alt:
+-+
| |
---
- Если целое число равно 0, ничего не выводить
- Этот вопрос будет в utf-8, каждый символ будет считаться "байтом"
- Это Codegolf, поэтому выигрывает самый короткий ответ.
- У вас есть возможность использовать
+-+
вместо╔═╗
,---
а не╨─╨
и|
вместо║
Бонус (не решено, разрешить ли это на альтернативной версии, потому что это не будет так сложно)
-10%, если программа поддерживает отрицательные числа и переворачивает арки вот так
╥╥╥╥─╥╥╥╥
║║║╚═╝║║║
║║╚═══╝║║
║╚═════╝║
╚═══════╝
+---+
сверху, сбоку|
и снизу,-----
которые мне подходят. Juanpotato, если вы хотите использовать не-ascii символы, пожалуйста, укажите кодировку в вопросе. В таком виде я голосую за закрытие, так как неясно.Ответы:
CJam, 59 байт
Попробуй это здесь!
источник
Python 2, 106 байт (94 символа)
Довольно просто. Печатает построчно с изменяющимся количеством горизонтальных и вертикальных полос. Последняя строка печатается отдельно.
Я чувствую, что мне не хватает некоторых оптимизаций. Тот факт, что символы состоят из нескольких байтов, означает, что вы не можете делать что-то подобное
'║╨'[n>0]
, поэтому я не нашел хорошего способа напечатать последнюю строку в цикле. Уродливо, что с прилавком происходит так много манипуляций. Я бы хотел обновить строки напрямую,s+='║'
но индекс также используется для горизонтальных столбцов.источник
+-|
для создания арок, см. Op для примеров.Perl,
7882 символаК сожалению, я не мог найти способ воспользоваться бонусом без увеличения размера более чем на 10%. Я еще могу победить.
Ungolfed
Довольно просто, правда. Постепенно наращивает нижнюю строку (
╨$n╨
), укорачивая верхнюю строку (══
) на два символа, заканчивая, когда ее уже нельзя укоротить, поэтому мне не нужно возиться со счетчиками.источник
─
для n = 0, но ничего не должно печатать.-n
: Попробуйте онлайн!Bash, 124 байта (112 символов)
Образец прогона:
источник
Japt
-R
, 29 байтИспользует
+
&-
. Пожертвовано 4 байта для обработки кровавой проверки ввода!Попытайся
объяснение
источник
0
If the integer is 0 then don't output anything
из испытания: /0
,false
или пустая строка стоимостью некоторых байтов , но я не знаю , если какой - либо из тех , кто был бы приемлем , за исключением, может быть, пустая строка, которая будет стоить мне 5 байт (0
будет стоить только мне 1).JavaScript (ES6), 101 символ
объяснение
Рекурсивная функция, которая печатает каждую строку
Тестовое задание
Тест не использует параметр по умолчанию для совместимости браузера.
Показать фрагмент кода
источник
PHP (109 символов)
Все еще нужно избавиться от этого str_repeat, но большинство альтернатив не будет обрабатывать символы mulyibyte.
источник
Сетчатка , 79 символов
Попробуйте онлайн.
При этом в Retina используется новая функция, которая заменяет десятичное число
\d+
списком из такого количества символов$0$*═
.источник
Swift (209 байт)
Вероятно, Swift - не лучший язык для этого, я впервые пытаюсь выполнить кодовый гольф:
источник
Рубин, 90 байтов (74 символа)
Образец прогона:
источник
Haskell,
151162 байтаИзменить: я забыл иметь дело в
0
качестве вводаисточник
54 54 символа / 95 байт
Try it here (Firefox only).
объяснение
ПРИМЕЧАНИЕ: здесь используются хорошие старые блоки копирования, чтобы добраться до тех мест, где обычное объявление переменных не может быть достигнуто.
источник
Sed, 97 байт (81 символ)
(Код 96 байтов (80 символов) + опция командной строки из 1 символа)
Ввод ожидается как однозначное целое число.
Образец прогона:
Sed, 105 байт (75 символов)
(Код 104 байта (74 символа) + опция командной строки из 1 символа)
Ввод ожидается как однозначное целое число.
Образец прогона:
источник
Холст 15 байт
Попробуй это здесь!
Объяснение:
источник