La tua sfida è quella di creare una schermata di caricamento infinita, che assomigli a questa:
O, per essere più specifici:
- Non dare input.
- Output
Loading...
, con uno spazio finale, ma nessuna riga finale finale. - Ciclo all'infinito attraverso i caratteri
|
,/
,-
e\
: ogni 0,25 secondi, sovrascrivere l'ultimo con il successivo nella sequenza. È possibile sovrascrivere solo l'ultimo carattere oppure eliminare e riscrivere l'intera riga, a condizione cheLoading...
rimanga invariato.
Regole
- Il testo di output deve apparire esattamente come specificato. Newline / spazi finali sono accettabili.
- Si dovrebbe Non attendere 0.25 secondi prima di mostrare inizialmente in uscita - il primo fotogramma deve essere stampato non appena il programma viene eseguito.
- Il tuo programma dovrebbe essere in grado di funzionare all'infinito. Ad esempio, se si utilizza un contatore per i frame, il contatore non dovrebbe mai causare un errore superando il massimo nella propria lingua.
- Sebbene il periodo di attesa tra ciascun "frame" dovrebbe essere di 0,25 secondi, ovviamente questo non sarà mai esatto - è consentito un margine di errore del 10% circa.
- È possibile inviare una funzione, ma deve stampare su
stdout
. - È possibile inviare una risposta in un ambiente non console (ma ancora basato su testo), purché sia in grado di produrre l'animazione di caricamento.
- Questo è code-golf , quindi vince la soluzione più breve (in byte). Si applicano scappatoie standard per il golf da codice.
- Se possibile, fornisci una gif della schermata di caricamento in azione.
Esempio
Ecco il codice C ++ che ho usato per creare l'esempio (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;
}
}
Che vinca il migliore golfista!