Buradaki zorluk, şuna benzeyen sonsuz bir yükleme ekranı oluşturmak:
Veya daha spesifik olmak gerekirse:
- Giriş yapmayın.
- Çıktı
Loading...
, sonunda boşluk var ama sonunda yeni satır yok. - Karakter ile kademesiz döngüsü
|
,/
,-
ve\
:, her 0.25 saniyede bir dizideki bir sonraki son üzerine yazar. Yalnızca son karakterin üzerine yazabilir veyaLoading...
değişmeden kaldığı sürece tüm satırı silip yeniden yazabilirsiniz .
kurallar
- Çıktı metni tam olarak belirtildiği şekilde görünmelidir. Son satırlar / boşluklar kabul edilebilir.
- Sen gerektiğini değil , başlangıçta çıktı göstermeden önce 0.25 saniye bekleyin - İlk kare kısa sürede programın çalıştırıldığı olarak basılmalıdır.
- Programınız süresiz çalışabilmelidir. Örneğin, çerçeveler için bir sayaç kullanıyorsanız, sayaç, kendi dilinizde maksimum değeri aşarak hiçbir zaman hataya neden olmamalıdır.
- Her bir "kare" arasındaki bekleme süresi 0.25 saniye olmalıdır, açıkçası bu asla kesin olmayacak -% 10 gibi bir hata payına izin verilir.
- Bir işlev gönderebilirsiniz, ancak yazdırmanız gerekir
stdout
. - Yükleme animasyonu üretebildiği sürece, konsol dışı (ancak yine de metin tabanlı) bir ortamda yanıt gönderebilirsiniz.
- Bu kod golf , yani en kısa çözüm (bayt cinsinden) kazanır. Standart kod-golf boşlukları uygulanır.
- Mümkünse, lütfen yükleme ekranınıza bir gif ekleyin.
Örnek
Örnek oluşturmak için kullandığım C ++ kodu:
#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;
}
}
En iyi golfçü kazansın!