Ваше завдання - зробити нескінченний екран завантаження, який виглядає приблизно так:
Або, якщо бути конкретнішим:
- Не беруть ніяких даних.
- Вихідні дані
Loading...
з пробілом, але без зворотнього рядка. - Нескінченно цикл через символи
|
,/
,-
і\
: кожні 0,25 секунд, перезаписати останню з наступним в послідовності. Ви можете перезаписати лише останній символ або видалити та переписати весь рядок, поки довгий часLoading...
залишається незмінним.
Правила
- Вихідний текст повинен виглядати точно так, як зазначено. Приймаються нові рядки / пробіли.
- Ви повинні НЕ чекати 0,25 секунди , перш ніж спочатку показуючи висновок - перший кадр повинен бути надрукований , як тільки програма запускається.
- Ваша програма повинна мати можливість працювати безстроково. Наприклад, якщо ви використовуєте лічильник для кадрів, лічильник ніколи не повинен викликати помилку, перевищуючи максимум у вашій мові.
- Хоча період очікування між кожним "кадром" повинен становити 0,25 секунди, очевидно, це ніколи не буде точним - допускається похибка в 10% або більше.
- Ви можете надіслати функцію, але вона повинна надрукуватись
stdout
. - Ви можете надіслати відповідь у неконсольному (але все ж текстовому) середовищі, якщо воно здатне створити анімацію завантаження.
- Це код-гольф , тому найкоротше рішення (в байтах) виграє. Діють стандартні лазівки з кодовим гольфом.
- Якщо можливо, надайте gif вашого завантажувального екрана в дії.
Приклад
Ось код C ++, який я використовував для створення прикладу (ungolfed):
#include <iostream>
#include <string>
#include <thread>
using namespace std;
int main() {
string cycle = "|/-\\";
int i = 0;
cout << "Loading... ";
while (true) {
// Print current character
cout << cycle[i];
// Sleep for 0.25 seconds
this_thread::sleep_for(chrono::milliseconds(250));
// Delete last character, then increase counter.
cout << "\b";
i = ++i % 4;
}
}
Нехай переможе найкращий гольфіст!