Raffaele Cecco ist ein Programmierer, der Ende der achtziger Jahre einige der besten Videospiele für den ZX Spectrum- Computer produzierte. Unter anderem entwickelte er das hochgelobte Cybernoid und Exolon .
Raffaele wird am 10. Mai 2017 50 Jahre alt . Diese Herausforderung ist eine kleine Hommage an ihn, für die glücklichen Stunden, die viele von uns mit diesen großartigen Spielen verbracht haben, und für die Motivation, die sie mitgebracht haben.
Die Herausforderung
Der Zweck besteht darin, ein rechteckiges Auswahlrechteck zu erstellen, das von dem in Cybernoids Hauptmenübildschirm , jedoch in ASCII- Grafik, inspiriert ist .
Insbesondere wird die Zeichenfolge "Happy birthday Raffaele Cecco "
(beachten Sie das letzte Leerzeichen) an den Rändern eines 12 × 5-Rechtecks mit einer konstanten Pausenzeit zwischen den Schnappschüssen rotierend angezeigt.
Angenommen, der Text wird im Uhrzeigersinn angezeigt und gegen den Uhrzeigersinn gedreht (siehe Optionen unten), sind hier drei aufeinander folgende Schnappschüsse des rechteckigen Auswahlrahmens:
Happy birthd
a
o y
c
ceC eleaffaR
dann
appy birthda
H y
o R
cceC eleaffa
dann
ppy birthday
a
H R
a
occeC eleaff
und so weiter.
Regeln
Es werden keine Eingaben gemacht. Die Ausgabe erfolgt über STDOUT oder eine entsprechende Option oder in einem grafischen Fenster.
Die Ausgabe sollte tatsächlich den rotierenden Text darstellen. Das heißt, jeder neue Schnappschuss sollte den vorherigen überschreiben , um den Eindruck einer Bewegung zu erwecken. Dies kann beispielsweise durch Schreiben der entsprechenden Anzahl von Zeilenumbrüchen geschehen, um den Bildschirm effektiv zu löschen. Es ist akzeptabel, wenn dies nur für eine bestimmte Bildschirmgröße gilt. Gib es einfach in der Antwort an.
Folgende Optionen werden akzeptiert:
- Text kann im Uhrzeigersinn oder gegen den Uhrzeigersinn angezeigt und im Uhrzeigersinn oder gegen den Uhrzeigersinn gedreht werden (in den obigen Beispielschnappschüssen wird das Anzeigen im Uhrzeigersinn und das Drehen gegen den Uhrzeigersinn vorausgesetzt).
- Die Drehung sollte zyklisch in einer Endlosschleife erfolgen (bis das Programm gestoppt wird) und kann in jeder Phase beginnen.
- Die Pausenzeit zwischen Schnappschüssen sollte ungefähr konstant sein, kann jedoch zwischen 0,1 und 1 s frei gewählt werden. Eine anfängliche Pause vor dem Anzeigen des ersten Schnappschusses ist akzeptabel.
- Buchstaben können Groß-, Klein- oder Mischbuchstaben sein (wie im obigen Beispiel).
- Führende oder nachfolgende Leerzeichen sind zulässig.
Programme oder Funktionen sind in jeder Programmiersprache zulässig . Standardlücken sind verboten.
Geben Sie nach Möglichkeit eine GIF-Datei mit der Ausgabe oder einen Link zum Testen des Programms an.
Kürzester Code in Bytes gewinnt.