Nimm eine Flagge wie diese:
-----------------------------
| | |
| | |
|=============+=============|
| | |
| | |
-----------------------------
Und eine Zahleneingabe: die "Wellenlänge"
Angenommen, die Wellenlänge war 5. Ersetzen Sie dann alle 5 Zeichen entlang der Linie von Anfang an das nächste Zeichen a -
durch \
und verschieben Sie alle Zeichen danach eine Zeile nach unten. Wiederholen Sie dies bis zum Ende. Sie landen mit:
-----\
| -----\
| -----\
|===== | -----\
| ====== | -----
| ==+=== |
-----\ | ====== |
-----\ | ====|
-----\ |
-----\ |
-----
Wenn Sie am Ende keine volle Wellenlänge erzeugen können, ist das Flag fertig. Bleib einfach bis zum Ende flach.
Sie können davon ausgehen, dass alle Zeilen gleich lang sind und dass die oberen und unteren Zeilen vollständig aus -
(0x2D) bestehen und sich die restlichen Zeichen in !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
oder einem Leerzeichen ( ) befinden. (Also ist es ASCII-Wert
x
, wo 31 < x < 127
)
Die Flagge wird mindestens 3 hoch und 3 breit sein.
Die Wellenlänge ist eine nicht negative Ganzzahl (> = 0).
(Die Wellenlänge 1 kann auch die kleinste Wellenlänge sein, sodass das obige Beispiel die Wellenlänge 6 hat. Dies ist in Ordnung.)
Ihr I / O-Flag kann ein Array von Zeilen oder eine Zeichenfolge mit mehreren Zeilen sein.
Das Ausgabe-Flag kann abschließende Leerzeichen enthalten, jedoch nur führende Leerzeichen, solange es auf jedem Flag gleich ist. Das nachfolgende Leerzeichen eines Eingabe-Flags kann gelöscht werden.
Wertung
Das ist Code-Golf, also gewinnt die kürzeste Lösung in Bytes.
Testfälle
---
abc
---
2
--\
abc
--\
-----
| + |
-----
10
-----
| + |
-----
---------------------------------------
|&&&&&& &&&&&&|
|&&&&&& &&&&&&|
|&&&&&& &&&&&&|
|&&&&&& .\^/. &&&&&&|
|&&&&&& . | | . &&&&&&|
|&&&&&& |\| |/| &&&&&&|
|&&&&&& .--' '--. &&&&&&|
|&&&&&& \ / &&&&&&|
|&&&&&& > < &&&&&&|
|&&&&&& '~|/~~|~~\|~' &&&&&&|
|&&&&&& | &&&&&&|
|&&&&&& &&&&&&|
|&&&&&& &&&&&&|
---------------------------------------
12
------------\
|&&&&&& ------------\
|&&&&&& ------------\
|&&&&&& &&&&&&|
|&&&&&& &&&&&&|
|&&&&&& .\^/. &&&&&&|
|&&&&&& . | | . &&&&&&|
|&&&&&& . |\| |/| &&&&&&|
|&&&&&& --' '-- &&&&&&|
|&&&&&& \ /. &&&&&&|
|&&&&&& > < &&&&&&|
|&&&&&& '~|/~~|~~\|~' &&&&&&|
|&&&&&& | &&&&&&|
|&&&&&& &&&&&&|
------------\ &&&&&&|
------------\ &&&&&&|
------------\
-----------------------
|-._`-._ :| |: _.-'_.-|
| `-._`:| |:`_.-' |
|-------`-' '-'-------|
|------_.-. .-._------|
| _.-'_.:| |:._`-._ |
|-'_.-' :| |: `-._`-|
-----------------------
4
----\
|-._`----\
| `-._ :----\
|-----._`:| |: ----\
|-------`-| |:`_.-'_---
| _.--_.-' '-'_.-' .-|
|-'_.-'_.:. .-.----- |
----\-' :| |:._------|
----\| |: _`-._--|
----\ `-._ |
----\`-|
---
---------------
---------------
---------------
---------------
---------------
5
-----\
-----------\
---------------
---------------
-----\---------
-----\---
---
-------------------------------------------
|* * * * * |##########################|
| * * * * *| |
|* * * * * |##########################|
| * * * * *| |
|* * * * * |##########################|
| * * * * *| |
|* * * * * |##########################|
|--------------- |
|#########################################|
| |
|#########################################|
| |
|#########################################|
-------------------------------------------
0
\
|\
|*\
| \
|** \
| *\
|** \
| ** \
|** *\
|- ** \
|#- ** \
| #-** *\
|# #- ** \
| # #- ** \
\# # #-** *\
\# # #- ** \
\# # #- **|\
\# # #-** |#\
\# # #- **| #\
\# # #- |# #\
\# # #-**| # #\
\# # #- |# # #\
\# # #-| # # #\
\# # #-# # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # |
\# # # # # #|
\# # # # # |
\# # # # #|
\# # # # |
\# # # #|
\# # # |
\# # #|
\# # |
\# #|
\# |
\#|
\|
\