টিএল; ডিআর: অ্যারের শুরুতে অবস্থানের একটি অ্যারে এবং একটি রোবট দেওয়া, আন্দোলনের সাথে স্ট্রিং পড়ার চেয়ে একটি অ্যালগরিদম লিখুন (
F
"এগিয়ে যান",R
"90 ডিগ্রী ডানদিকে ঘোরান" এবংL
"90 ডিগ্রি ঘোরানোর জন্য" বাম ") এবং রোবটের শেষ অবস্থান গণনা করুন। সম্পূর্ণ লেখায় আরও বিশদ।
আমাদের বাড়িতে বাচ্চাদের জন্য একটি খুব সহজ প্রোগ্রামেবল ডিভাইস রয়েছে: গাড়িটি এগিয়ে যেতে, 90 ডিগ্রি বাম দিকে ঘুরুন বা 90 ডিগ্রি ডানদিকে ঘুরান বাটনগুলি সহ একটি ছোট গাড়ি। এর মতো কিছু:
আমাদের কাছে এই জাতীয় অক্ষর সহ একটি ফেনা মাদুর রয়েছে:
এই সমস্ত কিছুর উদ্দেশ্য হ'ল বাচ্চাদের বর্ণমালা এবং প্রোগ্রামিংয়ের অধ্যয়ন উভয়কে এক সাথে শেখানো।
চ্যালেঞ্জ
মনে করুন আমরা এলোমেলোভাবে আমাদের ফেনা মাদুরটি সাজিয়ে রেখেছি:
+---+---+---+---+---+---+---+
| E | R | L | B | I | X | N |
+---+---+---+---+---+---+---+
| O | A | Q | Y | C | T | G |
+---+---+---+---+---+---+---+
| F | W | H | P | D | Z | S |
+---+---+---+---+---+---+---+
| K | V | U | M | J |
+---+---+---+---+---+
| |
+---+
মনে করুন আমরাও গাড়িটি সংশোধন করেছি যাতে আমরা যখন "এগিয়ে যাও" কমান্ড প্রোগ্রাম করি তখন গাড়িটি মাদুরের এক বর্গক্ষেত্রের ঠিক আকারে এগিয়ে যায়। সুতরাং, যানবাহনটি যদি U
স্কোয়ারে থাকে এবং উত্তর দিকে যায় তবে এটি ঠিক P
স্কোয়ারে থামে ।
যানবাহনটি চলতে শুরু করার আগে নির্দেশাবলী সমস্ত দেওয়া হয় এবং সেগুলি হল:
F
: গাড়িটি পাশের স্কোয়ারের দিকে এগিয়ে যায়।R
: যানবাহনটি 90 ডিগ্রি ঠিক তার জায়গায় পরিণত হয় (আর কোনও গতিবিধি নেই)।L
: যানবাহনটি তার জায়গায় 90 ডিগ্রি রেখে গেছে (আর কোনও গতিবিধি নেই)।
একবার নির্দেশনা দেওয়া হয়ে গেলে, আপনি "জিও" বোতাম টিপুন এবং যানটিকে একটি নির্দিষ্ট অবস্থানে পাঠাতে পারেন কারণ এটি প্রদত্ত ক্রমের প্রতিটি নির্দেশ অনুসরণ করবে। সুতরাং, আপনি বাচ্চাকে গাড়ীর কোনও নির্দিষ্ট চিঠিতে যাওয়ার জন্য প্রয়োজনীয় নির্দেশাবলী সন্নিবেশ করতে বলতে পারেন।
আপনাকে অবশ্যই সংক্ষিপ্ততম প্রোগ্রাম / ফাংশন লিখতে হবে string
যা নির্দেশাবলীর একটি সেট সহ একটি (ইনপুট প্যারামিটার) প্রসেস করে এবং যানটি যে চিঠিটি (আউটপুট string
) থামিয়ে দেয় তার গণনা করে ।
বিবরণ:
- যানটি সর্বদা নীচে ফাঁকা স্কোয়ার থেকে শুরু হয়ে উত্তর দিকে (
U
বর্গাকার দিকে ) মুখোমুখি হয় । - ইনপুট স্ট্রিং শুধুমাত্র অক্ষর থাকতে হবে
F
,R
,L
এবংG
( "যান" বাটন জন্য)। আপনি যদি পছন্দ করেন তবে মাদুর এবং নির্দেশাবলীর জন্য ছোট হাতের অক্ষর ব্যবহার করতে পারেন। - অ্যালগরিদমকে প্রথমটির আগে স্ট্রিংয়ের প্রতিটি নির্দেশ মানতে হবে
G
(তার পরে প্রতিটি নির্দেশ যানবাহন চলতে শুরু করার সাথে সাথে উপেক্ষা করা হবে)। - যদি কোনও নির্দিষ্ট মুহুর্তে যানটি মাদুরের বাইরে চলে যায় (এমনকি ইনপুট স্ট্রিংটি পুরোপুরি প্রক্রিয়াজাত নাও করা হয়) তবে অ্যালগরিদমকে অবশ্যই স্ট্রিংটি ফিরে আসতে হবে
Out of mat
। - যদি তা না হয় তবে অ্যালগোরিদমকে অবশ্যই গাড়িটি থামানো চিঠিটি ফিরিয়ে দিতে হবে। প্রারম্ভিক পয়েন্টটি একটি
চর হিসাবে গণনা করা হয় (বা একটি খালি স্ট্রিং)।
উদাহরণ:
Input: FFG
Output: P
Input: FRFRFG
Output: Out of mat
Input: RRFFG
Output: Out of mat
Input: FFFRFFLFG
Output: X
Input: FFFRFFLF
Output: <-- Nothing or a whitespace (the robot has not started moving)
Input: FFFRRFFFG
Output: <-- Nothing or a whitespace (the robot has returned to the starting point)
Input: RRRRRLFFFLFFRFRFGFFRRGRFF
Output: L (Everything after the first G is ignored)
এটি কোড-গল্ফ , তাই প্রতিটি ভাষার জন্য সংক্ষিপ্ততম প্রোগ্রামটি জয় পেতে পারে!
@
প্রারম্ভিক অবস্থান এবং স্পেসগুলি বন্ধ থাকার কারণে, এই কনফিগারটিটি হবেERLBIXN\nOAQYCTG\nFWHPDZS\n KVUMJ \n @
(বিভিন্ন ফাঁক দিয়ে, এসই এতে