আমি টেট্রিসকে অনেক পছন্দ করি তবে আমি এতে খুব একটা ভাল না। আমি একবার দেখতে চাই যে স্পেসশিপটি আমার নিজের চোখের সামনে তুলে ফেলছে! এবং যেহেতু কম্পিউটারগুলি সমস্ত কিছুতে দুর্দান্ত, তাই আমার পক্ষে এটি চালানোর জন্য একটি প্রোগ্রাম তৈরি করা একমাত্র সম্ভাব্য সমাধান ... আপনি যদি আমার জন্য কিছু না করেন তবে!
একটি টেট্রোমিনো (চার স্কোয়ার দিয়ে তৈরি আকৃতি) এবং খেলার ক্ষেত্রের মানচিত্র দেওয়া, আপনি টেট্রোমিনো এমনভাবে স্থাপন করতে পারেন যে এটি সর্বাধিক সংখ্যক রেখাকে স্কোর করে (সারিগুলির সর্বাধিক সংখ্যাকে সম্পূর্ণ ব্লকগুলিতে পূর্ণ করে তোলে) এবং সর্বনিম্ন সংখ্যা তৈরি করে এর নতুন গর্ত (একটি খালি জায়গা যে করতে পারবে না মাঠ উপরের "দেখতে" 1 )।
ইনপুট
ইনপুটটিতে একটি একক লাইনে এমন একটি অক্ষর থাকবে যা ড্রপিং টেট্রোমিনোকে উপস্থাপন করবে এবং তারপরে 10 * 18 গ্রিড 2 স্পেস ( ) এবং আরও চিহ্নগুলি (
+
) উপস্থাপন করবে।
চরিত্রটি টেট্রিসে পাওয়া সাতটি বেস টেট্রোমিনোসের কোনওটির প্রতিনিধিত্ব করে। টুকরো সব 90 ডিগ্রি ঘোরানো যেতে পারে, কিন্তু উল্টানো হয় না। সমস্ত টিট্রোমিনো এবং তাদের ঘূর্ণন নিম্নরূপ:
#
S = ## ##
## #
#
Z = ## ##
## #
# ### ##
L = # # # #
## # ###
# ### ##
J = # # # #
## # ###
# # #
T = ### ## ### ##
# # #
O = ##
##
#
I = # ####
#
#
গ্রিডটি +
পূর্ব-স্থাপন করা ব্লকগুলি সহ টেট্রিসের প্লেয়িং ফিল্ডের প্রতিনিধিত্ব করে । সুতরাং, একটি উদাহরণ ইনপুট নিম্নলিখিত হতে পারে:
I
+ ++
+ +++++
++ +++++++
++ +++++++
++ +++++++
++ +++++++
++++++ +++
আউটপুট
আপনার আউটপুট ইনপুটটির মতো হবে তবে আদর্শ অবস্থানে থাকা টেট্রোমিনো সহ। #
পূর্ব-স্থাপন করা ব্লকগুলি থেকে আলাদা করার জন্য টেট্রোমিনোকে প্রতিনিধিত্ব করা উচিত । এগুলি ছাড়াও, আপনি xL yH
কোনও নতুন লাইনে আপনার অবস্থানটি আকারে কতগুলি লাইন / গর্ত তৈরি করে তা আউটপুটও করতে হবে।
উপরে বর্ণিত উদাহরণের আউটপুটটি নিম্নলিখিত 3 হবে :
I
+ ++
+ +++++
++#+++++++
++#+++++++
++#+++++++
++#+++++++
++++++ +++
4L 0H
আপনি কেবল সেরা ফলাফল (গুলি) আউটপুট দিতে পারবেন; দুই বা ততোধিক ক্ষেত্রে একই স্কোর দেওয়ার ক্ষেত্রে, আপনি তাদের সমস্ত আউটপুট দিতে হবে (ফাঁকা রেখার দ্বারা পৃথক)। প্রথমে স্কোর করা (উতরোত্তর) এর সংখ্যা অনুসারে বাছাই করে সর্বোত্তম ফলাফল নির্ধারণ করা হবে, তারপরে তৈরি নতুন গর্তের সংখ্যা (আরোহণ)। সুতরাং, 1L 1H
তুলনায় একটি ভাল স্কোর 0L 0H
।
আমি বিভিন্ন ইনপুট এবং প্রত্যাশিত আউটপুট (গুলি) এর একটি তালিকা তৈরিতে কাজ করব যা আপনি আপনার প্রোগ্রামটির বিরুদ্ধে পরীক্ষা করতে পারেন। এই স্থান দেখুন।
বিধি এবং বিশৃঙ্খলা
- এটি কোড-গল্ফ , তাই সংক্ষিপ্ততম সঠিক প্রয়োগের জয়।
- ইনপুট / আউটপুট এমন কোনও মাধ্যম হতে পারে যা আপনার টার্গেট ল্যাঙ্গুয়েজের (যেমন ফাইল, স্টিডিন / স্টাডআউট, পাঠ্য অঞ্চল) উপযুক্ত করে।
- যদি আপনার টার্গেট ল্যাঙ্গুয়েজ একাধিক লাইন ইনপুট সমর্থন করে না (বা এটি করতে অসুবিধা হয়) তবে আপনি পরিবর্তে ইনপুটটির প্রতিটি লাইন কমা দিয়ে (
,
) করতে পারেন। - আপনি গ্রিডের কোনও ফাঁকা লাইনের আউটপুট বাদ দিতে পারেন।
- মনে রাখবেন যে টেট্রোমিনো উপর থেকে পড়ে - আপনি টুকরোটি "ভূগর্ভস্থ" নাও রাখতে পারেন। সুতরাং আপনি ধরে নিতে পারেন যে টুকরোটির সমস্ত সম্ভাব্য প্লেসমেন্টগুলি "পৃষ্ঠ-স্তর" (যেমন পিস এবং বোর্ডের শীর্ষের মধ্যে কোনও ব্লক নেই) থাকবে।
- ধরে নিন যে এমন কোনও পরিস্থিতি কখনই আসবে না যেখানে আপনাকে বাধ্য হয়ে কোনও খেলা শেষ করতে হবে (স্থাপন করা টেট্রোমিনো মাঠের শীর্ষ-কেন্দ্রে স্পর্শ করে)।
- আউটপুটে অভিন্ন সমাধানগুলি অবশ্যই বাদ দিতে হবে (উদাহরণস্বরূপ, আপনি যদি সহজেই
O
টুকরোটি ঘোরান তবে 3 টি সমাধান আউটপুট রয়েছে )।
1 আমি সচেতন যে এটি কিছু ভুল ধনাত্মক তৈরি করবে তবে এটি সরলকরণ ification
2 এটি গেম বয় সংস্করণে ব্যবহৃত গ্রিড আকার।
3 হ্যাঁ, 0H
সঠিক। আবার যাচাই করুন, আমি বললাম নতুন গর্ত; ^)