পোকেমন ভিডিও গেমগুলিতে, প্লেয়ারকে বন্য প্রাণীকে ছোট ছোট বল প্রয়োগ করতে এবং তাদের লড়াইয়ের প্রশিক্ষণ দেওয়ার জন্য বিশ্বে পাঠানো হয়। অবশ্যই, সবাই জানেন যে লড়াইয়ের জন্য কেউ পোকেমন খেলেন না । সিরিজের আসল ড্র হ'ল পোকেমন নিজেই ধরা! আপনার কাজ হ'ল একটি ক্যাপচার প্রচেষ্টার সময় পোকবল অনুকরণ করা। এই চ্যালেঞ্জটি প্রজন্মের ভি ক্যাপচার সূত্রটি ব্যবহার করবে যা নীচে:

HP_maxলক্ষ্য পোকেমন সর্বাধিক এইচপি সমান। HP_currentলক্ষ্য পোকেমন বর্তমান এইচপি সমান। rateএটি bonus_ballপোকেমনের ক্যাচ রেট, নিক্ষিপ্ত পোকেবলের গুণক এবং bonus_statusএটি 2.5 হয় যদি লক্ষ্য পোকেমন ঘুমন্ত বা হিমায়িত হয়, 1.5 লক্ষ্য লক্ষ্য পোকেমন পক্ষাঘাতগ্রস্থ, বিষাক্ত বা পোড়া হয় এবং অন্যথায় 1।
সন্ধানের পরে a, আপনি তিনটি পর্যন্ত "শেক চেক" করতে পারবেন। শেক চেক সফল হওয়ার সম্ভাবনা হ'ল 65536 / (255 / a)^(1/4)। যদি এই চেকগুলির কোনও একটি ব্যর্থ হয়, পোকেমন তার বলটি থেকে পালিয়ে যায়। তিনটি চেক সফল হলে পোকেমন ধরা পড়ে!
দ্রষ্টব্য: যখনই কোনও বিভাগ সম্পাদিত হয়, ফলাফলটি 1/4096 এর একাধিকতে গোল হয়। এটি সাধারণত একটি তাত্পর্যপূর্ণ বিশদ, তবে এটি আপনার প্রোগ্রামে অবশ্যই জবাবদিহি করতে হবে।
আপনার চ্যালেঞ্জটি হ'ল এমন একটি প্রোগ্রাম লিখুন যা শেক চেকগুলি কার্যকর করে এবং চেকগুলির স্থিতিটি অবিচ্ছিন্ন করতে প্রিন্ট করে। স্টিডিনে, আপনার প্রোগ্রামটি পোকেমন সর্বাধিক এইচপি, লক্ষ্য পোকেমনের ক্যাচ রেট এবং পোকবলের নাম পাবেন (কমপক্ষে নীচে বিশদগুলি) will সর্বাধিক এইচপি এবং ক্যাচ রেট উভয়ই পূর্ণসংখ্যা হওয়ার গ্যারান্টিযুক্ত, অন্যদিকে পোকবলের নাম সর্বদা একটি স্ট্রিং। এই ইনপুটটি কোনও ক্রমে আসতে পারে এবং কোনও সীমিত অক্ষর (গুলি) এর সাথে আপনার পক্ষে উপযুক্ত, যতক্ষণ এটি সামঞ্জস্যপূর্ণ। অনুমান করুন যে ইনপুটটি সঠিক, কোনও ত্রুটি পরিচালনার প্রয়োজন নেই।
আপনার সমর্থন করার জন্য প্রয়োজনীয় পোকবোলগুলির নাম এবং তাদের ধরা গুণকগুলি এখানে তালিকাভুক্ত রয়েছে:
Poke | 1
Great | 1.5
Ultra | 2
Master | 255
আপনি ধরে নিতে পারেন যে লক্ষ্যটি ঘুমন্ত এবং 1 এইচপিতে রয়েছে। আউটপুট জন্য প্রত্যাশিত বিন্যাসটি হ'ল:
(First check failed)
(no output)
(Second check failed)
*shake*
(Third check failed)
*shake*
*shake*
*shake*
(All checks pass)
*shake*
*shake*
*shake*
Click!
(এটি কোনও টাইপো নয়, আপনার প্রোগ্রামটি কখনই কেবল দু'বার কাঁপতে পারে না))
এটি কোড-গল্ফ , সুতরাং আপনার স্কোরটি আপনার প্রোগ্রামের উত্স কোডের বাইট গণনা। সর্বনিম্ন স্কোর জয়।
বোনাসেস!
আমি বললাম আপনি যে হতে পারে অনুমান পোকেমন 1 এইচপি এবং ঘুমিয়ে রয়েছে। বিকল্পভাবে, আপনি ব্যবহারকারীকে পোকেমনের বর্তমান এইচপি এবং ইনপুট করার অনুমতি দিতে পারেন bonus_status। পোকেমনের বর্তমান এইচপি সর্বদা তার সর্বোচ্চ এইচপি এর সমান বা তার চেয়ে কম পূর্ণসংখ্যার bonus_statusহবে এবং সর্বদা 2.5, 1.5 বা 1 হয় either 2.5 যদি তাদের সরবরাহ না করা হয়। এর মধ্যে একটি বাস্তবায়নের জন্য আপনি আপনার স্কোর থেকে 15 পয়েন্ট বা উভয়ের জন্য 25 টি বিয়োগ করতে পারেন ।
অতিরিক্তভাবে, আপনি সমালোচনামূলক ক্যাপচারগুলি প্রয়োগ করতে পারেন। যদি একটি সমালোচনা ক্যাপচার হয়, কেবলমাত্র একটি ঝাঁকুনি পরীক্ষা করা হয়। যদি ব্যর্থ হয়, প্রোগ্রামটি নিঃশব্দে প্রস্থান করে। যদি পাস হয়ে যায় তবে ফলাফলগুলি:
*shake*
Click!
খেলোয়াড় আরও বেশি পোকেমন সংগ্রহ করায় সমালোচনামূলক ক্যাপচারগুলি আরও সাধারণ হয়ে ওঠে, তবে সরলতার জন্য আমরা ধরে নিতে পারি যে তারা ইতিমধ্যে "তাদের সবাইকে" ধরে ফেলেছে। যদি 0 এবং 2047 এর মধ্যে এলোমেলোভাবে উত্পন্ন সংখ্যাটি a2.5 টি দ্বারা গুণিত (প্রথম গণনার ফলাফল) এর চেয়ে কম হয় তবে এটি একটি সমালোচনামূলক ক্যাপচার। সমালোচনা ক্যাপচারের জন্য সমর্থন আপনাকে আপনার স্কোর থেকে 25 পয়েন্ট অপসারণ করতে দেয় ।
আপনি সমর্থনের জন্য বেছে নিতে পারেন এমন আরও অনেক পোকবাল রয়েছে। তাদের নাম এবং ক্যাচ মাল্টিপ্লায়ারগুলি এখানে তালিকাভুক্ত রয়েছে:
Safari | 1.5
Sport | 1.5
Lure | 3
Net | 3
Dusk | 3.5
Dive | 3.5
Moon | 4
Fast | 4
Quick | 5
Love | 8
এই প্রতিটি বলের জন্য আপনি সমর্থন যুক্ত করেছেন, আপনি নিজের স্কোর থেকে (5 + বলের নামের দৈর্ঘ্য) বিয়োগ করতে পারেন ।
অবশেষে, কিক্সের জন্য, এই সমস্ত বোনাস (বর্তমান এইচপি এবং বোনাস_ স্ট্যাটাস, স্টিডিন, সমালোচনামূলক ক্যাপচারগুলি এবং সমস্ত 10 alচ্ছিক বলগুলি) অর্জন করা আপনাকে এমনকি 150 টি মোট বোনাসের জন্য আপনার স্কোর থেকে সরিয়ে নেওয়া 7 পয়েন্টের অতিরিক্ত পুরষ্কার প্রাপ্ত করবে ।
উদাহরণ ইনপুট / আউটপুট
কেবল আমরা নিশ্চিত হয়েছি যে আমরা সবাই একই পৃষ্ঠায় আছি।
$ ./balls <<< "19,Ultra,255"
*shake*
*shake*
*shake*
Click!
শুভকামনা, এবং শুভ গল্ফিং!
65536 / (255 / a)^(1/4)1 এর বেশি হয় তবে চেকটি স্বয়ংক্রিয়ভাবে সফল হয়। আমি নিশ্চিত না যে আপনি দ্বিতীয় প্রশ্নটি দ্বারা কী বোঝাতে চাইছেন।
rnd < pমানে হল যে চেকটি rnd0 এবং 1 এর
65536 / (255 / a)^(1/4), যদি এলোমেলো সংখ্যাটি কম হয় তবে
65536 / (255 / a)^(1/4)তবে আমার সাহস বলে যে এটি 1 এর চেয়ে বেশি? আপনি কি 0 থেকে 65536 এর মধ্যে একটি এলোমেলো সংখ্যার বিপরীতে চেক করেন? এলোমেলো সংখ্যা বড় হলে বা কম হলে চেকটি সফল হয়?