আপনার চ্যালেঞ্জটি হ'ল অসীম লোডিং স্ক্রিন তৈরি করা, যা দেখতে এটির মতো দেখাচ্ছে:
বা, আরও সুনির্দিষ্ট হতে হবে:
- কোনও ইনপুট নিবেন না।
- আউটপুট
Loading...
, একটি পিছনের স্থান সহ, তবে কোনও নতুন লাইনে নেই। - অক্ষর মাধ্যমে অসীম চক্র
|
,/
,-
এবং\
কিছু: প্রতিবার 0.25 সেকেন্ড, ক্রমানুসারে পরবর্তী সঙ্গে গত এক ওভাররাইট করবে। আপনি কেবলমাত্র সর্বশেষ অক্ষরটি ওভাররাইট করতে পারেন, বা যতক্ষণ নাLoading...
অপরিবর্তিত রয়েছেন ততক্ষণ পুরো লাইনটি মুছে ফেলতে এবং পুনরায় লিখতে পারেন ।
বিধি
- আউটপুট পাঠ্য নির্দিষ্ট হিসাবে অবশ্যই দেখতে হবে। ট্রেলিং নতুনলাইন / স্পেস গ্রহণযোগ্য।
- প্রাথমিকভাবে আউটপুট দেখানোর আগে আপনাকে 0.25 সেকেন্ড অপেক্ষা করা উচিত নয় - প্রোগ্রামটি চালুর সাথে সাথে প্রথম ফ্রেমটি মুদ্রণ করা উচিত।
- আপনার প্রোগ্রামটি অনির্দিষ্টকালের জন্য চালাতে সক্ষম হওয়া উচিত। উদাহরণস্বরূপ, যদি আপনি ফ্রেমগুলির জন্য একটি কাউন্টার ব্যবহার করেন তবে কাউন্টারটি কখনই আপনার ভাষায় সর্বাধিককে অতিক্রম করে ত্রুটি ঘটায় না।
- যদিও প্রতিটি "ফ্রেম" এর মধ্যে অপেক্ষার সময়টি 0.25 সেকেন্ড হওয়া উচিত, অবশ্যই এটি কখনই সঠিক হতে পারে না - 10% বা ততোধিক ত্রুটির মার্জিন অনুমোদিত।
- আপনি কোনও ফাংশন জমা দিতে পারেন তবে এটিতে মুদ্রণ করতে হবে
stdout
। - যতক্ষণ না এটি লোডিং অ্যানিমেশন তৈরি করতে সক্ষম হয় আপনি নন-কনসোল (তবে এখনও পাঠ্য ভিত্তিক) পরিবেশে একটি উত্তর জমা দিতে পারেন।
- এটি কোড-গল্ফ , তাই সংক্ষিপ্ততম সমাধান (বাইটে) জিতেছে। স্ট্যান্ডার্ড কোড-গল্ফ লুফোলস প্রয়োগ হয়।
- যদি সম্ভব হয় তবে আপনার লোডিং স্ক্রিনটি কার্যত একটি জিআইএফ সরবরাহ করুন।
উদাহরণ
উদাহরণটি তৈরি করতে আমি যে সি ++ কোডটি ব্যবহার করেছি তা এখানে রয়েছে (অব্যক্ত):
#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;
}
}
সেরা গল্ফার জয় হোক!