Sinto uma certa falta das antigas demos que mostram os recursos dos computadores quando foram chamados x86 em vez de i3, i5 e i7. Uma das primeiras que assisti no meu 386 foi a demo Unreal da Future Crew, que agora está comemorando seu 25º aniversário. No minuto 0:43, a primeira parte da demonstração é iniciada e vemos um texto de rolagem seguindo um caminho sinusoidal. Vamos tentar imitar esse efeito na arte ASCII!
O desafio
Dado este caminho:
*** ***
*** ***
** **
* *
* *
* *
* *
** **
*** ***
******
e um texto de entrada, desenhe o texto seguindo esse caminho, assim:
Thi Golf!
s i de Yay
s Co !
P
r d
o n
g a
ra s
mmi zle
ng Puz
Observe que os espaços contam como caracteres no caminho e que o caminho se repete se o texto for maior que a amostra.
A parte da animação
Depois de desenhar o texto, aguarde 100 ms (para criar uma animação de cerca de 10 qps) e desenhe o texto novamente, mas partindo da próxima posição do caminho. Portanto, para o quadro #n
, calcule n modulo 40
e comece a desenhar na seguinte posição do caminho, com o texto sempre alinhado à esquerda da tela:
*** ***
| *** *** |
| ** ** |
| * * |
| * * |
| * * |
| * * |
| ** ** |
| *** *** |
| ****** |
Position 0 Position 39
Portanto, para o quadro 10, teremos:
and Co
es de
zl Go
z l
u f
T P !
h
is ng Ya
is mmi y!
Progra
Notas
- A entrada será uma única
string
(ouchar
matriz, o que for) com o texto a ser animado e sempre terá pelo menos 1 caractere. - Caracteres válidos para animar são aqueles no conjunto ASCII imprimível .
- O caminho a seguir será exatamente como indicado.
- O texto sempre será alinhado à esquerda da tela; portanto, o efeito será o texto acenando como uma bandeira, sem deslocamento de texto. E por tela quero dizer tela ou o que você usar para mostrar o texto . ;-)
- Os quadros devem estar livres de caracteres / pixels dos quadros anteriores, a menos que o caractere / pixel seja o mesmo nos dois quadros.
- A velocidade da animação não importa desde que funcione sem problemas ou o mais rápido que o seu dispositivo puder (podemos definir um mínimo de 5 qps, mas isso não é um requisito). Basta ajustar a velocidade para torná-la fluida e não se preocupe se o tempo de espera não for exatamente o mesmo.
- A animação será repetida sem parar.
Isso é código-golfe , então o programa ou função mais curto capaz de animar o texto ganha!