Ваша задача - создать бесконечный загрузочный экран, который выглядит следующим образом:
Или, чтобы быть более конкретным:
- Не принимайте никаких данных.
- Выходные данные
Loading...
, с завершающим пробелом, но без завершающего перевода строки. - Бесконечно цикл через символы
|
,/
,-
и\
: каждые 0,25 секунд, перезаписать последнюю со следующим в последовательности. Вы можете перезаписать только последний символ или удалить и перезаписать всю строку, так как longLoading...
остается неизменным.
правила
- Выходной текст должен выглядеть точно так, как указано. Конечные символы новой строки / пробелы являются приемлемыми.
- Вам не следует ждать 0,25 секунды, прежде чем вы начнете показывать вывод - первый кадр должен быть напечатан сразу после запуска программы.
- Ваша программа должна работать бесконечно долго. Например, если вы используете счетчик для фреймов, он никогда не должен вызывать ошибку, превышая максимум на вашем языке.
- Хотя период ожидания между каждым «кадром» должен составлять 0,25 секунды, очевидно, что он никогда не будет точным - допустимая погрешность составляет около 10%.
- Вы можете отправить функцию, но она должна распечатать
stdout
. - Вы можете отправить ответ в неконсольной (но все же основанной на тексте) среде, если она способна создавать загрузочную анимацию.
- Это код-гольф , поэтому выигрывает самое короткое решение (в байтах). Применяются стандартные лазейки для игры в гольф.
- Если возможно, предоставьте gif вашего экрана загрузки в действии.
пример
Вот код C ++, который я использовал для создания примера (без гольфа):
#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;
}
}
Пусть победит лучший гольфист!