De alguna manera extraño esas viejas demostraciones que muestran las capacidades de las computadoras cuando se llamaban x86 en lugar de i3, i5 e i7. Una de las primeras que vi en mi 386 fue la demostración de Unreal de Future Crew que ahora celebra su 25 aniversario. En el minuto 0:43 comienza la primera parte de la demostración y vemos un texto desplazable siguiendo una ruta sinusoidal. ¡Intentemos imitar ese efecto en el arte ASCII!
El reto
Dado este camino:
*** ***
*** ***
** **
* *
* *
* *
* *
** **
*** ***
******
y un texto de entrada, dibuje el texto siguiendo esa ruta, así:
Thi Golf!
s i de Yay
s Co !
P
r d
o n
g a
ra s
mmi zle
ng Puz
Tenga en cuenta que los espacios cuentan como caracteres en la ruta y que la ruta se repite si el texto es más largo que la muestra.
La parte de animación
Una vez que haya dibujado el texto, espere 100 ms (para crear una animación de alrededor de 10 fps) y vuelva a dibujar el texto pero comenzando desde la siguiente posición de la ruta. Entonces, para el marco #n
, calcule n modulo 40
y comience a dibujar en la siguiente posición de la ruta con el texto siempre alineado a la izquierda del lienzo:
*** ***
| *** *** |
| ** ** |
| * * |
| * * |
| * * |
| * * |
| ** ** |
| *** *** |
| ****** |
Position 0 Position 39
Entonces para el cuadro 10 tendremos:
and Co
es de
zl Go
z l
u f
T P !
h
is ng Ya
is mmi y!
Progra
Notas
- La entrada será simple
string
(ochar
matriz, lo que sea) con el texto para animar, y siempre tendrá al menos 1 carácter. - Los caracteres válidos para animar son aquellos en el conjunto ASCII imprimible .
- El camino a seguir será exactamente como se indica.
- El texto siempre estará alineado a la izquierda del lienzo, por lo que el efecto será el texto ondeando como una bandera, sin desplazamiento de texto. Y por lienzo me refiero a la pantalla o lo que sea que vayas a usar para mostrar el texto . ;-)
- Los cuadros deben estar libres de caracteres / píxeles de cuadros anteriores a menos que el carácter / píxel sea el mismo en ambos cuadros.
- La velocidad de la animación no importa siempre que se ejecute sin problemas o tan rápido como su dispositivo (podemos establecer un mínimo de 5 fps, pero esto no es un requisito). Simplemente ajuste la velocidad para que sea fluido y no se preocupe si los tiempos de espera no son exactamente los mismos.
- La animación se repetirá sin parar.
Este es el código de golf , ¡así que puede que gane el programa o la función más corta capaz de animar el texto!