Raffaele Cecco è un programmatore che ha prodotto alcuni dei migliori videogiochi per il computer ZX Spectrum alla fine degli anni Ottanta. Tra gli altri, ha sviluppato l'acclamato Cybernoid ed Exolon .
Raffaele compie 50 anni il 10 maggio 2017 . Questa sfida è un piccolo omaggio a lui, per gli happy hour che molti di noi hanno trascorso giocando a quei fantastici giochi e per la motivazione che hanno portato.
La sfida
Lo scopo è quello di produrre un riquadro rettangolare ispirato a quello visto nella schermata del menu principale di Cybernoid , ma nell'arte ASCII.
In particolare, la stringa "Happy birthday Raffaele Cecco "
(notare lo spazio finale) verrà mostrata ruotando lungo i bordi di un rettangolo 12 × 5, con un tempo di pausa costante tra le istantanee.
Ad esempio, supponendo che il testo sia visualizzato in senso orario e ruotato in senso antiorario (vedere le opzioni di seguito), ecco tre istantanee consecutive del riquadro rettangolare:
Happy birthd
a
o y
c
ceC eleaffaR
poi
appy birthda
H y
o R
cceC eleaffa
poi
ppy birthday
a
H R
a
occeC eleaff
e così via.
Regole
Nessun input verrà preso. L'output avverrà tramite STDOUT o equivalente o in una finestra grafica.
L'output dovrebbe effettivamente rappresentare la rotazione del testo; cioè ogni nuova istantanea dovrebbe sovrascrivere la precedente per dare l'impressione di movimento. Questo può essere fatto in qualsiasi modo, ad esempio, scrivendo il numero appropriato di newline per cancellare efficacemente lo schermo. È accettabile se questo è valido solo per una data dimensione dello schermo; basta specificarlo nella risposta.
Sono accettate le seguenti opzioni:
- Il testo può essere visualizzato in senso orario o antiorario e può essere ruotato in senso orario o antiorario (gli esempi di esempio sopra presuppongono la visualizzazione in senso orario e la rotazione in senso antiorario).
- La rotazione dovrebbe continuare ciclicamente in un ciclo infinito (fino a quando il programma non viene arrestato) e può iniziare in qualsiasi fase.
- Il tempo di pausa tra le istantanee dovrebbe essere approssimativamente costante, ma può essere scelto liberamente tra 0,1 e 1 s. È accettabile una pausa iniziale prima di visualizzare la prima istantanea.
- Le lettere possono essere maiuscole, minuscole o miste (come nell'esempio sopra).
- Spazio consentito iniziale o finale.
Programmi o funzioni sono consentiti, in qualsiasi linguaggio di programmazione . Sono vietate le scappatoie standard .
Se possibile, fornire un file gif che mostri l'output o un collegamento per testare il programma.
Vince il codice più breve in byte.