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
\
|\
|*\
| \
|** \
| *\
|** \
| ** \
|** *\
|- ** \
|#- ** \
| #-** *\
|# #- ** \
| # #- ** \
\# # #-** *\
\# # #- ** \
\# # #- **|\
\# # #-** |#\
\# # #- **| #\
\# # #- |# #\
\# # #-**| # #\
\# # #- |# # #\
\# # #-| # # #\
\# # #-# # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # |
\# # # # # #|
\# # # # # |
\# # # # #|
\# # # # |
\# # # #|
\# # # |
\# # #|
\# # |
\# #|
\# |
\#|
\|
\
quelle
Antworten:
05AB1E ,
25232625 Bytes-2 danke an Adnan
-1 danke an Emigna
+3 danke an Jonathan Allan (danke, dass du dir die Zeit genommen hast, diese Invalidität zu finden!)
Probieren Sie es online!
Dies ist 1-indiziert anstelle von 0, +2 Bytes, wenn das nicht in Ordnung ist.
Emigna / Adnan / Anyone - Es muss eine bessere Lösung geben, um diese Schrägen zu ersetzen, aber ich bin ratlos.
quelle
ú
ist das gleiche wieð×ì
:)Pyth , 35 Bytes
Probieren Sie es online!
quelle
Python 2 , 129 Bytes
Probieren Sie es online!
quelle
Gelee , 29 Bytes
Eingabe- und Ausgabe-Flags sind Zeilenlisten.
Die Wellenlänge ist 1-indiziert.
Erzeugt immer eine Zeile Leerzeichen.
(alles oben Genannte ist in der gestellten Frage ausdrücklich erlaubt)
Probieren Sie es online! (Fußzeile, um IO hübsch aussehen zu lassen - nimmt und empfängt Flags als mehrzeiligen Text)
Wie?
Eine ziemlich ähnliche Methode wie die 05ab1e-Antwort von carusocomputing , bei der ich nicht mehr Golf spielen konnte.
quelle
MATL , 31 Bytes
Probieren Sie es online! Oder überprüfen Sie alle Testfälle: 1 , 2 , 3 , 4 , 5 , 6 , 7 .
quelle
-
durch das[\]
?JavaScript (ES6), 175 Byte
I / O ist eine durch Zeilenumbrüche getrennte Zeichenfolge. Die Ausgabe enthält einen führenden Zeilenumbruch. Dies kann zu einem Preis von 3 Bytes entfernt werden. Ich habe versucht, den Ausgabe-String direkt zu berechnen, aber das hat mich ... 176 Bytes gekostet:
I / O ist ein String-Array.
quelle
PHP,
168 164 187 172 167 153 150 152149 Bytesa
Nimmt Flag aus statischer Datei und Wellenlänge (mindestens 1) von STDIN.Laufen Sie als Pipe mit
php -nr
oder probieren Sie es online aus .Nervenzusammenbruch
quelle
$z&&$z!=$r-1
sollte gleichbedeutend mit dem$z%($r-1)
Speichern von 3 Byte sein.