আমি খেলতে পছন্দ করি একটি খেলা আছে। এটি সীমাবদ্ধ আকারের গ্রিডে ঘটে (তবে এটি একটি গোলকের মতো জড়িয়ে থাকে)। সেই গ্রিডে, একটি এলোমেলো (পূর্ণসংখ্যার কেবল) পয়েন্ট নির্বাচন করা হয়। তারপরে, আমি, ব্যবহারকারীকে একটি সমন্বিত ইনপুট জিজ্ঞাসা করা হবে। যদি আমার ইনপুটটি এলোমেলো পয়েন্টের সাথে ঠিক মিলে যায় তবে আমাকে জানানো হয়েছে যে আমি জিতেছি। অন্যথায়, আমাকে আমার ইনপুট এবং এলোমেলো পয়েন্টের মধ্যে পয়েন্ট-ভিত্তিক দূরত্ব বলা হয়েছে। উদাহরণস্বরূপ, যদি আমি অনুমান করি (2,2)
এবং এলোমেলো পয়েন্টটি ছিল (4,3)
তবে দূরত্ব হবে sqrt[(3-2)^2 + (4-2)^2] = sqrt[5]
।
খেলোয়াড় পয়েন্টটির সঠিক অবস্থানে না আসা পর্যন্ত খেলা অব্যাহত থাকে।
উদ্দেশ্য উপরে বর্ণিত গেমের কার্যকরী সংস্করণ তৈরি করুন। এটি করতে আপনাকে অবশ্যই একটি সম্পূর্ণ প্রোগ্রাম তৈরি করতে হবে। আপনার প্রোগ্রামটি যা করা উচিত তা এখানে:
- দুটি ইনপুট অনুরোধ করুন: বোর্ডের উচ্চতা এবং প্রস্থ। উত্স বোর্ডের উপরের বাম দিকে রয়েছে। এই ইনপুটগুলি অতিক্রম করবে না
1024
। - যে বোর্ডে একটি এলোমেলো পয়েন্ট নির্বাচন করুন; এটি অনুমান করা পয়েন্ট হবে।
- একটি টার্ন অনুকরণ করে ইনপুট গ্রহণ করুন। ইনপুটটি হয় স্থান দ্বারা পৃথক পূর্ণসংখ্যা বা দুটি পৃথক পূর্ণসংখ্যার ইনপুট। এই ইনপুটটির প্রতিক্রিয়া হিসাবে, প্রোগ্রাম দুটি কাজের মধ্যে একটি করবে:
- যদি ইনপুটটি নির্বাচিত এলোমেলো পয়েন্টের সাথে মেলে, তবে একটি বার্তা আউটপুট ব্যবহারকারীর বিজয়ের ইঙ্গিত দেয়। আমি আপনাকে "আপনি জিতেছি!" পরামর্শ দেব।
- অন্যথায়, ব্যবহারকারীর ইনপুট পয়েন্ট এবং এলোমেলো পয়েন্টের মধ্যে দূরত্ব আউটপুট করুন।
- একবার ব্যবহারকারী বিজয় অর্জন করার পরে, ব্যবহারকারী কতগুলি ঘুরেছে তার প্রদর্শন করুন। প্রোগ্রামটি তখন বের হয়।
বোনাসেস
বোনাসগুলি এই তালিকায় উপস্থিত হওয়ার সাথে সাথে প্রয়োগ করা হয়
- -150 বাইটস যদি আপনার প্রোগ্রামটি কোনও ইনপুট পূর্ণসংখ্যা
D
নেয় যা গেমটির মাত্রাটি বর্ণনা করে যা সংঘটিত হয়। উদাহরণস্বরূপ, যদিD = 3
, তবে আপনি3
পূর্ণসংখ্যার একটি এলোমেলো পয়েন্ট তৈরি করেন ,3
পূর্ণসংখ্যা ইনপুট নিন এবং এই পয়েন্টগুলির মধ্যে দূরত্ব আউটপুট করুন। - -50% (বা + 50% যদি
score < 0
) আপনি বোর্ডের একটি গ্রাফিকাল উপস্থাপনা (ASCII বা চিত্র) সরবরাহ করেন যা দেখায় যেখানে ব্যবহারকারী পূর্বে প্রদত্ত মাত্রাগুলির গ্রিড এবং টার্ন কাউন্টারে অনুমান করেছে। (আপনি যদি প্রথম বোনাসের জন্য যান তবে এই বোনাসটি কেবলমাত্র2D
এবং1D
মোডগুলিতে প্রযোজ্য you আপনি যদি 3D গ্রাফিকাল আউটপুট যোগ করেন তবে আপনি অতিরিক্ত -50% পাবেন get - -60 বাইটস যদি আপনি কোনও গেমমোড সরবরাহ করতে পারেন (শুরুতে কোনও ইনপুট দ্বারা নির্বাচিত; এটি যখন দেওয়া হয়, তখন
0
নিয়মিত গেমমোড সম্পাদন করুন; যখন দেওয়া হয়1
, তখন এই গেমমোডটি সম্পাদন করুন) যেখানে পয়েন্টটি প্রতি একক ইউনিটকে ঘুরিয়ে দিয়ে এলোমেলো দিকের দিকে নিয়ে যায়
মোড়ানোর বিষয়ে আরও
মোড়ক কেবল তখনই ঘটে যখন তৃতীয় বোনাসে মুভিং পয়েন্টটি কোনও সীমানা জুড়ে চলে; এক্ষেত্রে মুভিংটি পয়েন্টটি সংশ্লিষ্ট পয়েন্টে রেপ করা হয়, যেমন:
... ...
..R (move right) R..
... ...
এই মোড়কের আচরণটি ব্যবহারকারীর অনুমানকে প্রভাবিত করে না, এই দিকটি দিক থেকে পরিবর্তিত হয়েছে তা বাদ দেয়।
লিডারবোর্ড
এই পোস্টের নীচে স্ট্যাক স্নিপেট উত্তরগুলি থেকে ক্যাটালগ তৈরি করে a) ভাষার প্রতি সংক্ষিপ্ত সমাধানের তালিকা হিসাবে এবং খ) সামগ্রিক লিডারবোর্ড হিসাবে।
আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:
# Language Name, N bytes
N
আপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:
# Ruby, <s>104</s> <s>101</s> 96 bytes
যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি আলাদাভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:
# Perl, 43 + 2 (-p flag) = 45 bytes
আপনি ভাষাটির নামটিকে একটি লিঙ্কও তৈরি করতে পারেন যা স্নিপেটে প্রদর্শিত হবে:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
10x10
, র্যান্ডম পয়েন্টটি হয় (9,4)
এবং আমার ধারণা (2,2)
, দূরত্বটি sqrt(13)
নাকি sqrt(53)
? (ভবিষ্যতের জন্য দ্রষ্টব্য: আপনি যদি অদ্ভুত কিছু করছেন তবে এলোমেলোভাবে অন্তর্ভুক্ত করবেন না কারণ এটি পরীক্ষার কেস সরবরাহ করা প্রায় অসম্ভব করে তোলে) ২. তৃতীয় বোনাসে, পয়েন্টটি সরানোর আগে বা পরে দূরত্বটি গণনা করা এবং আউটপুট নেওয়া উচিত?