Мені дещо не вистачає тих старих демонстрацій, які показують можливості комп'ютерів, коли їх називали x86 замість i3, i5 та i7. Однією з перших, яку я переглянув у своєму 386 році, була демонстрація Unreal від Future Crew, яка зараз святкує своє 25-річчя. У хвилині 0:43 починається перша частина демонстрації, і ми бачимо прокручуваний текст, що йде за синусоїдальним шляхом. Спробуємо наслідувати цей ефект у мистецтві ASCII!
Змагання
З огляду на цей шлях:
*** ***
*** ***
** **
* *
* *
* *
* *
** **
*** ***
******
і вхідний текст, намалюйте текст наступним шляхом:
Thi Golf!
s i de Yay
s Co !
P
r d
o n
g a
ra s
mmi zle
ng Puz
Зауважте, що пробіли вважаються символами на шляху, і шлях повторюється, якщо текст довший за зразок.
Анімаційна частина
Після того, як ви намалювали текст, зачекайте 100 мс (щоб створити анімацію близько 10 кадрів в секунду) і знову намалюйте текст, але починаючи з наступної позиції шляху. Отже, для кадру #n
обчисліть n modulo 40
і починайте малювати в наступному положенні шляху з текстом, завжди вирівняним зліва від полотна:
*** ***
| *** *** |
| ** ** |
| * * |
| * * |
| * * |
| * * |
| ** ** |
| *** *** |
| ****** |
Position 0 Position 39
Отже, для кадру 10 у нас буде:
and Co
es de
zl Go
z l
u f
T P !
h
is ng Ya
is mmi y!
Progra
Примітки
- Вхід буде одним
string
(абоchar
масивом, будь-яким) із текстом для анімації, і завжди матиме щонайменше 1 символ. - Дійсні символи для анімації - це ті, що містяться в наборі ASCII для друку .
- Шлях, який слід слідувати, буде точно таким, як зазначено.
- Текст завжди буде вирівнюватися зліва від полотна, тому ефектом буде текст, який махає як прапор, без зміщення тексту. Під полотном я маю на увазі екран або все, що ви використовуватимете для показу тексту . ;-)
- Кадри повинні бути без будь-яких символів / пікселів з попередніх кадрів, якщо символ / піксель не є однаковим в обох кадрах.
- Швидкість анімації не має значення, поки вона працює плавно або настільки швидко, наскільки може ваш пристрій (ми можемо встановити як мінімум 5 кадрів в секунду, але це не є вимогою). Просто відрегулюйте швидкість, щоб вона стала текучою, і не переживайте, якщо тривалість очікування точно не однакова.
- Анімація буде нескінченною.
Це код-гольф , тому може виграти найкоротша програма або функція, здатна анімувати текст!