Boustrophedon ist eine Art bidirektionaler Text, bei dem aufeinanderfolgende Zeilen abwechselnd von links nach rechts und von rechts nach links gelesen werden. Die Zeichenrichtung wurde auch in Bezug auf die Leserichtung gespiegelt. In umgekehrten Boustrophedon-Schreibsystemen wurden die Zeichen statt gespiegelt um 180 gedreht.
Herausforderung
Schreiben Sie ein Programm / eine Funktion, die eine Textzeichenfolge und eine Anzahl von Spalten akzeptiert und die Zeichenfolge in der angegebenen Anzahl von Spalten mit abwechselnden Zeilen auf den Kopf stellt.
Eingang
Ihr Programm sollte zwei Argumente akzeptieren:
- S, die zu formatierende Textzeichenfolge
- N, die Anzahl der Spalten
Ausgabe
Ihr Programm sollte S in N Spalten mit jeweils um 180 Grad gedrehten Zeilen ausgeben.
- Die Leserichtung der ersten Zeile ist immer von links nach rechts.
- Machen Sie sich keine Gedanken darüber, wo Zeilenumbrüche platziert werden sollen. Zeilen können nach beliebigen Zeichen aufgeteilt werden, ohne dass eine Hypenierung der Wörter erforderlich ist.
- Sie können davon ausgehen, dass die Eingabezeichenfolge keine Zeilenumbrüche enthält.
Hier sind die Zeichen, die Ihr Programm mit ihren gekippten Gegenstücken unterstützen sollte:
Uppercase:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
∀qƆpƎℲפHIſʞ˥WNOԀQɹS┴∩ΛMX⅄Z
Lowercase:
abcdefghijklmnopqrstuvwxyz
ɐqɔpǝɟƃɥᴉɾʞlɯuodbɹsʇnʌʍxʎz
Punctuation:
&_?!"'.,
⅋‾¿¡„,˙'
Testfälle
S: The quick brown fox jumps over the lazy dog.
N: 30
Output:
The quick brown fox jumps over
˙ƃop ʎzɐl ǝɥʇ
S: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vel libero arcu. Nunc dictum elementum lectus nec aliquet. Donec dolor nunc, sodales at dolor rhoncus, hendrerit scelerisque purus. Pellentesque vel sagittis libero, et rutrum leo. Nullam vulputate enim et massa dictum, vitae venenatis augue lobortis. Fusce sollicitudin ultrices consequat. Vestibulum quis nunc non tortor eleifend facilisis. In at nunc elit. Aliquam pellentesque, lectus quis aliquam posuere, quam lectus sagittis metus, ut auctor sem quam a neque. Integer rhoncus lobortis nisl. Pellentesque mi dui, laoreet in metus quis, mollis accumsan est. Nunc dignissim tortor ac eleifend tempus. Ut ut tellus aliquam, luctus nulla quis, consectetur nunc. Suspendisse viverra molestie condimentum. Curabitur et hendrerit augue.
N: 50
Output:
Lorem ipsum dolor sit amet, consectetur adipiscing
uǝɯǝlǝ ɯnʇɔᴉp ɔunN ˙nɔɹɐ oɹǝqᴉl lǝʌ ǝnbsᴉnQ ˙ʇᴉlǝ
tum lectus nec aliquet. Donec dolor nunc, sodales
lǝԀ ˙snɹnd ǝnbsᴉɹǝlǝɔs ʇᴉɹǝɹpuǝɥ 'snɔuoɥɹ ɹolop ʇɐ
lentesque vel sagittis libero, et rutrum leo. Null
sᴉʇɐuǝuǝʌ ǝɐʇᴉʌ 'ɯnʇɔᴉp ɐssɐɯ ʇǝ ɯᴉuǝ ǝʇɐʇndlnʌ ɯɐ
augue lobortis. Fusce sollicitudin ultrices conse
ɔɐɟ puǝɟᴉǝlǝ ɹoʇɹoʇ uou ɔunu sᴉnb ɯnlnqᴉʇsǝΛ ˙ʇɐnb
ilisis. In at nunc elit. Aliquam pellentesque, lec
ʇǝɯ sᴉʇʇᴉƃɐs snʇɔǝl ɯɐnb 'ǝɹǝnsod ɯɐnbᴉlɐ sᴉnb snʇ
us, ut auctor sem quam a neque. Integer rhoncus lo
snʇǝɯ uᴉ ʇǝǝɹoɐl 'ᴉnp ᴉɯ ǝnbsǝʇuǝllǝԀ ˙lsᴉu sᴉʇɹoq
quis, mollis accumsan est. Nunc dignissim tortor
u snʇɔnl 'ɯɐnbᴉlɐ snllǝʇ ʇn ʇ∩ ˙sndɯǝʇ puǝɟᴉǝlǝ ɔɐ
ulla quis, consectetur nunc. Suspendisse viverra m
˙ǝnƃnɐ ʇᴉɹǝɹpuǝɥ ʇǝ ɹnʇᴉqɐɹnƆ ˙ɯnʇuǝɯᴉpuoɔ ǝᴉʇsǝlo
quelle
Japt ,
182179 BytesJapt ist eine verkürzte Version von Ja vaScri pt . Dolmetscher
Wie es funktioniert
Es gibt einige Probleme, die jedoch die Gültigkeit des Programms nicht beeinträchtigen sollten:
\xA1
ist drei Bytes länger.Vielleicht gibt es eine Möglichkeit, die Zeichenfolge zu verkürzen. Vorschläge sind willkommen!
quelle
CJam, 152
Teste es hier.
Ich denke, ich sollte mich etwas mit dem Komprimieren dieser Unicode-Zeichenfolge befassen ...
quelle
Javascript (ES6),
407400366360353 BytesIch zähle nur die ersten beiden "Zeilen" in diesem Snippet als Gesamtanzahl, da der Rest Code zum Ausführen ist.
Erläuterung
quelle
.split("")
‚s und.join("")
‘ s.split``
und.join``
abrasieren ein paar Bytes. Das.join("\n")
kann auch wie oben beschrieben mit einem wörtlichen Zeilenumbruch anstelle von umgeschrieben werden\n
.exec
und es kurz hält, daexec
es eine Schleife braucht, um alle Übereinstimmungen zu erhalten.Pyth, 141 Bytes
Getestet mit einem Online-Pyth-Compiler.
Wie es funktioniert
Karte
Normal
Umgedreht (nichts Besonderes)
quelle
Python,
453363 Bytesquelle