Mi manca un po 'quelle vecchie demo che mostrano le capacità dei computer quando venivano chiamate x86 invece di i3, i5 e i7. Uno dei primi che ho visto nel mio 386 è stata la demo di Unreal di Future Crew che ora celebra il suo 25 ° anniversario. Al minuto 0:43 inizia la prima parte della demo e vediamo un testo scorrevole che segue un percorso sinusoidale. Proviamo a imitare quell'effetto nell'arte ASCII!
La sfida
Dato questo percorso:
*** ***
*** ***
** **
* *
* *
* *
* *
** **
*** ***
******
e un testo di input, disegna il testo seguendo quel percorso, in questo modo:
Thi Golf!
s i de Yay
s Co !
P
r d
o n
g a
ra s
mmi zle
ng Puz
Si noti che gli spazi contano come caratteri nel percorso e che il percorso si ripete se il testo è più lungo del campione.
La parte animata
Dopo aver disegnato il testo, attendere 100 ms (per creare un'animazione di circa 10 fps) e disegnare di nuovo il testo, ma a partire dalla posizione successiva del percorso. Quindi, per la cornice #n
, calcola n modulo 40
e inizia a disegnare nella seguente posizione del tracciato con il testo sempre allineato a sinistra della tela:
*** ***
| *** *** |
| ** ** |
| * * |
| * * |
| * * |
| * * |
| ** ** |
| *** *** |
| ****** |
Position 0 Position 39
Quindi per il frame 10 avremo:
and Co
es de
zl Go
z l
u f
T P !
h
is ng Ya
is mmi y!
Progra
Appunti
- L'input sarà un singolo
string
(ochar
array, qualunque sia) con il testo da animare e avrà sempre almeno 1 carattere. - I caratteri validi da animare sono quelli nel set ASCII stampabile .
- Il percorso da seguire sarà esattamente come indicato.
- Il testo sarà sempre allineato a sinistra della tela, quindi l'effetto sarà il testo che ondeggia come una bandiera, senza spostamento del testo. E per tela intendo schermo o qualunque cosa tu usi per mostrare il testo . ;-)
- I frame devono essere liberi da qualsiasi carattere / pixel dei frame precedenti a meno che il carattere / pixel sia lo stesso in entrambi i frame.
- La velocità dell'animazione non ha importanza fino a quando scorre senza intoppi o con la massima velocità del tuo dispositivo (possiamo impostare un minimo di 5 fps, ma questo non è un requisito). Basta regolare la velocità per renderla fluida e non preoccuparti se i tempi di attesa non sono esattamente gli stessi.
- L'animazione si ripeterà all'infinito.
Questo è code-golf , quindi può vincere il programma o la funzione più breve in grado di animare il testo!