Bei einer solchen Zeichenfolge von ASCII-Grafiken (Dies ist keine ASCII-Grafik, aber für das Beispiel ausreichend):
abc
d e
fgh
Durcheinander, als würde es auf einem Bildschirm mit einem Zeichen pro Zeile angezeigt, wie folgt:
a
b
c
d
e
f
g
h
Drucken Sie das Ergebnis aus, warten Sie eine Sekunde, ± 0,5 Sekunden, bevor Sie das Terminal löschen, und drucken Sie dasselbe, wobei jedoch 2 Zeichen pro Zeile anstelle von 1 angezeigt werden. Grundsätzlich ändert sich die Breite der Anzeige von 1 auf 2.
ab
c
d
e
fg
h
Beachten Sie das Leerzeichen nach dem d
. Wiederholen Sie das Warten und drucken Sie dann mit einem zusätzlichen Zeichen pro Zeile, bis der eingegebene Text ausgegeben wird.
Wenn Sie beim Drucken von Zeichen das Zeilenende erreichen, fügen Sie eine neue Zeile ein und drucken den Rest nach dieser Regel. Zum Beispiel die Eingabe:
abcdefg
ab
Würde Folgendes drucken, wenn die Anzeigelänge 4 beträgt.
abcd
efg
ab
Den Effekt der Größenänderung des Terminals finden Sie hier: https://repl.it/GoeU/1 . Führen Sie das Programm aus und ziehen Sie das Objekt, das das Terminal vom Texteditor trennt, hin und her.
Klärung:
Sobald eine Zeile genau so angezeigt wird, wie sie eingegeben wurde, können Sie diese Zeile für zukünftige größere Zeichenzahlen pro Zeile in Ruhe lassen.
abc
ab
sollte drucken
ab
c
ab
wenn die Satzlänge = 2 ist.
Dies ist Code-Golf , also gewinnt die geringste Anzahl von Bytes!
Regeln:
- Muss als einzige Ausgabe auf STDOUT gedruckt werden.
- Muss das Terminal löschen oder die Illusion erzeugen, das Terminal zu löschen, indem etwa 150 leere Zeilen hinzugefügt werden.
- Kann Eingaben über die Standardmethoden vornehmen.
- Es gelten Standardlücken.
- Nachlaufende Inhalte mit dem Text sind NICHT OK.
Diese Idee kam mir, als ich die Größe eines Terminals mit ASCII-Grafik änderte. Es sah interessant aus, also beschloss ich, eine Herausforderung daraus zu machen.
Testfälle:
Da es zu viel Arbeit wäre, jeden Schritt für jeden Testfall einzeln anzuzeigen, werde ich jede Antwort überprüfen, um sicherzustellen, dass sie gültig ist. Stellen Sie sicher, dass die Antwort die Testfälle verarbeiten kann.
______ ______ __ __ __ ______ __ __ ______
/\ == \ /\ == \ /\ \ /\ "-.\ \ /\__ _\ /\ "-./ \ /\ ___\
\ \ _-/ \ \ __< \ \ \ \ \ \-. \ \/_/\ \/ \ \ \-./\ \ \ \ __\
\ \_\ \ \_\ \_\ \ \_\ \ \_\\"\_\ \ \_\ \ \_\ \ \_\ \ \_____\
\/_/ \/_/ /_/ \/_/ \/_/ \/_/ \/_/ \/_/ \/_/ \/_____/
__/\__
\ /
__/\__/ \__/\__
\ /
/_ _\
\ /
__/\__ __/ \__ __/\__
\ / \ / \ /
__/\__/ \__/\__/ \__/\__/ \__/\__
Python 3.5 (
238233229225223222 Bytes)- Funktioniert gut im Windows-Terminal; Bei anderen Plattformen aufgrund des systemspezifischen Befehls os.system ("cls") nicht sicher.
- Die übergebene Zeichenfolge sollte für Zeilenumbrüche mit \ n markiert sein, z. B.: 'Abc \ nd efgh \ n'
quelle
z=print
oben verwenden und dann alle anderen Instanzen vonprint()
to ändernz()
.print
mitrange
, und stattrange(0,3)
Verwendungrange(3)
.sleep(0.5)
kann als bloß umgeschrieben werdensleep(.5)