Twoim zadaniem jest stworzenie nieskończonego ekranu ładowania, który wygląda następująco:
Lub bardziej szczegółowo:
- Nie wkładaj żadnych danych.
- Wyjście
Loading...
z końcową spacją, ale bez końcowej linii nowej linii. - Nieskończenie przechodzić zwęgla
|
,/
,-
i\
: co 0.25 sekundy, zastąpienie ostatni z następnym w kolejności. Możesz zastąpić tylko ostatni znak lub usunąć i przepisać całą linię, o ile długoLoading...
pozostanie niezmieniona.
Zasady
- Tekst wyjściowy musi wyglądać dokładnie tak, jak określono. Znaki końcowe / spacje są dopuszczalne.
- Należy nie czekaj 0,25 sekund przed początkowo przedstawiający wyjście - pierwsza klatka powinna być wydrukowane tak szybko, jak program zostanie uruchomiony.
- Twój program powinien być w stanie działać w nieskończoność.Na przykład, jeśli używasz licznika dla ramek, licznik nigdy nie powinien powodować błędu, przekraczając maksimum w twoim języku.
- Chociaż okres oczekiwania między każdą „ramką” powinien wynosić 0,25 sekundy, oczywiście nigdy nie będzie to dokładne - dopuszczalny margines błędu wynoszący około 10%.
- Możesz przesłać funkcję, ale musi ona zostać wydrukowana na
stdout
. - Możesz przesłać odpowiedź w środowisku innym niż konsola (ale nadal oparte na tekście), o ile jest w stanie wygenerować animację ładowania.
- To jest golf golfowy , więc wygrywa najkrótsze rozwiązanie (w bajtach). Obowiązują standardowe luki w kodzie golfowym.
- Jeśli to możliwe, podaj gif ekranu ładowania w akcji.
Przykład
Oto kod C ++, którego użyłem do stworzenia przykładu (nie golf):
#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;
}
}
Niech zwycięży najlepszy golfista!