Возьмите флаг, как этот:
-----------------------------
| | |
| | |
|=============+=============|
| | |
| | |
-----------------------------
И ввод числа: «длина волны»
Скажем, длина волны была 5. Затем, каждые 5 символов вдоль линии от начала, замените следующий символ a -
на \
и сдвиньте все символы после него на одну строку вниз. Повторите это до конца. Вы заканчиваете с:
-----\
| -----\
| -----\
|===== | -----\
| ====== | -----
| ==+=== |
-----\ | ====== |
-----\ | ====|
-----\ |
-----\ |
-----
Если вы в конечном итоге не сможете сделать полную длину волны в конце, флаг заканчивается. Просто оставайся плоским до конца.
Можно предположить, что все строки имеют одинаковую длину, а верхняя и нижняя строки полностью состоят из -
(0x2D), а остальные символы находятся в пробелах !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
( ). (Так что это значение ascii
x
, где 31 < x < 127
)
Флаг будет по крайней мере 3 в высоту и 3 в ширину.
Длина волны будет неотрицательным целым числом (> = 0).
(Длина волны 1 также может быть наименьшей длиной волны, поэтому приведенный выше пример будет иметь длину волны 6. Это нормально.)
Ваш флаг ввода / вывода может быть массивом строк или строкой с несколькими строками.
Выходной флаг может иметь конечные пробелы, но может иметь только начальные пробелы, если он одинаков для каждого флага. Конечный пробел на флаге ввода может быть удален.
счет
Это код-гольф, поэтому выигрывает самое короткое решение в байтах.
Контрольные примеры
---
abc
---
2
--\
abc
--\
-----
| + |
-----
10
-----
| + |
-----
---------------------------------------
|&&&&&& &&&&&&|
|&&&&&& &&&&&&|
|&&&&&& &&&&&&|
|&&&&&& .\^/. &&&&&&|
|&&&&&& . | | . &&&&&&|
|&&&&&& |\| |/| &&&&&&|
|&&&&&& .--' '--. &&&&&&|
|&&&&&& \ / &&&&&&|
|&&&&&& > < &&&&&&|
|&&&&&& '~|/~~|~~\|~' &&&&&&|
|&&&&&& | &&&&&&|
|&&&&&& &&&&&&|
|&&&&&& &&&&&&|
---------------------------------------
12
------------\
|&&&&&& ------------\
|&&&&&& ------------\
|&&&&&& &&&&&&|
|&&&&&& &&&&&&|
|&&&&&& .\^/. &&&&&&|
|&&&&&& . | | . &&&&&&|
|&&&&&& . |\| |/| &&&&&&|
|&&&&&& --' '-- &&&&&&|
|&&&&&& \ /. &&&&&&|
|&&&&&& > < &&&&&&|
|&&&&&& '~|/~~|~~\|~' &&&&&&|
|&&&&&& | &&&&&&|
|&&&&&& &&&&&&|
------------\ &&&&&&|
------------\ &&&&&&|
------------\
-----------------------
|-._`-._ :| |: _.-'_.-|
| `-._`:| |:`_.-' |
|-------`-' '-'-------|
|------_.-. .-._------|
| _.-'_.:| |:._`-._ |
|-'_.-' :| |: `-._`-|
-----------------------
4
----\
|-._`----\
| `-._ :----\
|-----._`:| |: ----\
|-------`-| |:`_.-'_---
| _.--_.-' '-'_.-' .-|
|-'_.-'_.:. .-.----- |
----\-' :| |:._------|
----\| |: _`-._--|
----\ `-._ |
----\`-|
---
---------------
---------------
---------------
---------------
---------------
5
-----\
-----------\
---------------
---------------
-----\---------
-----\---
---
-------------------------------------------
|* * * * * |##########################|
| * * * * *| |
|* * * * * |##########################|
| * * * * *| |
|* * * * * |##########################|
| * * * * *| |
|* * * * * |##########################|
|--------------- |
|#########################################|
| |
|#########################################|
| |
|#########################################|
-------------------------------------------
0
\
|\
|*\
| \
|** \
| *\
|** \
| ** \
|** *\
|- ** \
|#- ** \
| #-** *\
|# #- ** \
| # #- ** \
\# # #-** *\
\# # #- ** \
\# # #- **|\
\# # #-** |#\
\# # #- **| #\
\# # #- |# #\
\# # #-**| # #\
\# # #- |# # #\
\# # #-| # # #\
\# # #-# # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # |
\# # # # # #|
\# # # # # |
\# # # # #|
\# # # # |
\# # # #|
\# # # |
\# # #|
\# # |
\# #|
\# |
\#|
\|
\
Ответы:
05AB1E ,
25232625 байтов-2 благодаря Аднану
-1 спасибо Эмигне
+3 спасибо Джонатану Аллану (спасибо, что потратили время, чтобы поймать эту инвалидность!)
Попробуйте онлайн!
Это индексируется 1 вместо 0, +2 байта, если это не нормально.
Emigna / Adnan / Anyone - Должно быть лучшее решение для замены этих сланцев, но я в тупике.
источник
ú
так же, какð×ì
:)Pyth , 35 байтов
Попробуйте онлайн!
источник
Python 2 , 129 байт
Попробуйте онлайн!
источник
Желе , 29 байт
Флаги ввода и вывода представляют собой списки строк.
Длина волны 1-индексирована.
Всегда производит одну строку пробелов.
(все вышесказанное явно разрешено в размещенном вопросе)
Попробуйте онлайн! (нижний колонтитул, чтобы IO выглядел красиво - принимает и получает флаги в виде многострочного текста)
Как?
Очень похож на метод carusocomputing в ответе 05ab1e , который мне не удавалось больше упасть.
источник
MATL , 31 байт
Попробуйте онлайн! Или проверьте все контрольные примеры: 1 , 2 , 3 , 4 , 5 , 6 , 7 .
источник
-
на[\]
?JavaScript (ES6), 175 байт
Ввод / вывод выполняется в виде строки с разделителями новой строки. Вывод включает в себя ведущий перевод строки; это может быть удалено по стоимости 3 байта. Я попытался вычислить строку вывода напрямую, но это заняло у меня ... 176 байт:
Ввод / вывод в виде строкового массива.
источник
PHP,
168 164 187 172 167 153 150 152149 байтберет флаг из статического файла
a
и длину волны (минимум 1) из STDIN.Запустите как трубу с
php -nr
или попробуйте онлайн .сломать
источник
$z&&$z!=$r-1
должно быть эквивалентно$z%($r-1)
сохранению 3 байтов.