Trochę tęsknię za tymi starymi wersjami demonstrującymi możliwości komputerów, które nazywały się x86 zamiast i3, i5 i i7. Jednym z pierwszych, które obejrzałem w moim 386, było demo Unreal od Future Crew, które obchodzi 25-lecie istnienia. W minucie 0:43 rozpoczyna się pierwsza część wersji demo i widzimy przewijany tekst podążający ścieżką sinusoidalną. Spróbujmy naśladować ten efekt w sztuce ASCII!
Wyzwanie
Biorąc pod uwagę tę ścieżkę:
*** ***
*** ***
** **
* *
* *
* *
* *
** **
*** ***
******
i tekst wejściowy, narysuj tekst podążając tą ścieżką:
Thi Golf!
s i de Yay
s Co !
P
r d
o n
g a
ra s
mmi zle
ng Puz
Zauważ, że spacje liczą się jako znaki na ścieżce i że ścieżka powtarza się, jeśli tekst jest dłuższy niż próbka.
Część animacji
Po narysowaniu tekstu poczekaj 100 ms (aby utworzyć animację około 10 fps) i narysuj tekst ponownie, zaczynając od następnej pozycji ścieżki. Tak więc w przypadku ramki #n
oblicz n modulo 40
i rozpocznij rysowanie w następującej pozycji ścieżki z tekstem zawsze wyrównanym do lewej strony obszaru roboczego:
*** ***
| *** *** |
| ** ** |
| * * |
| * * |
| * * |
| * * |
| ** ** |
| *** *** |
| ****** |
Position 0 Position 39
Tak więc dla klatki 10 będziemy mieli:
and Co
es de
zl Go
z l
u f
T P !
h
is ng Ya
is mmi y!
Progra
Notatki
- Wejściowy będzie pojedynczy
string
(lubchar
tablica, cokolwiek) z tekstem do animacji i zawsze będzie miał co najmniej 1 znak. - Prawidłowe znaki do animowania to te z zestawu drukowalnego ASCII .
- Ścieżka do podążania będzie dokładnie taka, jak podana.
- Tekst zawsze będzie wyrównywany do lewej strony obszaru roboczego, więc efektem będzie tekst falujący jak flaga, bez przesunięcia tekstu. I przez płótno mam na myśli ekran lub cokolwiek, czego użyjesz do wyświetlenia tekstu . ;-)
- Ramki muszą być wolne od znaków / pikseli z poprzednich klatek, chyba że znak / piksel jest taki sam w obu klatkach.
- Szybkość animacji nie ma znaczenia, o ile działa płynnie lub tak szybko, jak to tylko możliwe (możemy ustawić minimum 5 klatek na sekundę, ale nie jest to wymagane). Po prostu dostosuj prędkość, aby płyn był płynny i nie martw się, jeśli czasy oczekiwania nie będą dokładnie takie same.
- Animacja będzie się powtarzać w nieskończoność.
To jest gra w golfa , więc może wygrać najkrótszy program lub funkcja animująca tekst!