Thử thách của bạn là tạo ra một màn hình tải vô hạn, trông như thế này:
Hoặc, để cụ thể hơn:
- Không có đầu vào.
- Đầu ra
Loading...
, với một không gian dấu, nhưng không có dòng mới. - Chu kỳ vô hạn thông qua các ký tự
|
,/
,-
và\
: mỗi 0,25 giây, ghi đè lên người cuối cùng với sự tiếp theo trong chuỗi. Bạn có thể ghi đè chỉ ký tự cuối cùng, hoặc xóa và viết lại toàn bộ dòng, miễnLoading...
là không thay đổi.
Quy tắc
- Văn bản đầu ra phải trông chính xác như được chỉ định. Trailing newlines / space được chấp nhận.
- Bạn không nên đợi 0,25 giây trước khi hiển thị đầu ra - khung đầu tiên sẽ được in ngay khi chương trình được chạy.
- Chương trình của bạn sẽ có thể chạy vô thời hạn. Ví dụ: nếu bạn sử dụng bộ đếm cho khung, bộ đếm sẽ không bao giờ gây ra lỗi bằng cách vượt quá mức tối đa trong ngôn ngữ của bạn.
- Mặc dù thời gian chờ giữa mỗi "khung" phải là 0,25 giây, rõ ràng điều này sẽ không bao giờ chính xác - tỷ lệ lỗi 10% hoặc hơn được cho phép.
- Bạn có thể gửi một chức năng, nhưng nó phải in ra
stdout
. - Bạn có thể gửi câu trả lời trong môi trường không có bàn điều khiển (nhưng vẫn dựa trên văn bản), miễn là nó có khả năng tạo ra hình ảnh động tải.
- Đây là môn đánh gôn , vì vậy giải pháp ngắn nhất (tính bằng byte) sẽ thắng. Tiêu chuẩn mã lỗ golf áp dụng.
- Nếu có thể, vui lòng cung cấp gif của màn hình tải của bạn trong thực tế.
Thí dụ
Đây là mã C ++ mà tôi đã sử dụng để tạo ví dụ (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;
}
}
Có thể người chơi golf tốt nhất giành chiến thắng!