Seu desafio é criar uma tela de carregamento infinita, com a seguinte aparência:
Ou, para ser mais específico:
- Não aceite nenhuma entrada.
- Saída
Loading...
, com um espaço à direita, mas sem nova linha à direita. - Ciclo infinitamente através dos caracteres
|
,/
,-
e\
: a cada 0,25 segundos, substituir o último com o seguinte na sequência. Você pode substituir apenas o último caractere ou excluir e reescrever a linha inteira, desde queLoading...
permaneça inalterada.
Regras
- O texto de saída deve parecer exatamente como especificado. Novas linhas / espaços à direita são aceitáveis.
- Você não deve esperar 0,25 segundos antes de mostrar inicialmente a saída - o primeiro quadro deve ser impresso assim que o programa for executado.
- Seu programa deve ser capaz de executar indefinidamente. Por exemplo, se você usar um contador para quadros, o contador nunca deverá causar um erro excedendo o máximo no seu idioma.
- Embora o período de espera entre cada "quadro" deva ser de 0,25 segundos, obviamente isso nunca será exato - uma margem de erro de 10% ou mais é permitida.
- Você pode enviar uma função, mas ela deve ser impressa em
stdout
. - Você pode enviar uma resposta em um ambiente que não seja do console (mas ainda com base em texto), desde que seja capaz de produzir a animação de carregamento.
- Isso é código-golfe , então a solução mais curta (em bytes) vence. Aplicam-se lacunas de código-golfe padrão.
- Se possível, forneça um gif da sua tela de carregamento em ação.
Exemplo
Aqui está o código C ++ que eu usei para criar o exemplo (não-destruído):
#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;
}
}
Que ganhe o melhor jogador de golfe!