ভূমিকা
সকলেই জানেন যে গ্রহাণু ক্ষেত্রটি সফলভাবে নেভিগেশনের সম্ভাবনা প্রায় 3,720 থেকে 1। তবে আপনার সতর্কতা সত্ত্বেও হ্যান সলো এখনও তার ভাগ্য চেষ্টা করতে রাজি।
আপনার কৃত্রিম জীবনের ভয়ে, আপনি জাহাজের অদ্ভুত উপভাষায় কোড পড়ার সিদ্ধান্ত নেন ( পড়ুন: আপনার পছন্দের কোড গল্ফ ভাষা ), একটি গ্রহাণু পরিহারের প্রোগ্রাম যা গ্রহাণু ক্ষেত্রের ASCII গোলকধাঁধায় কোন পাথ গ্রহণ করবে তা সিদ্ধান্ত নেবে।
ইনপুট
মিলেনিয়াম ফ্যালকনের একটি গ্রহাণু ফিল্ড ম্যাপিং প্রোগ্রাম রয়েছে যা এটির মতো ডেটা দেয়:
| ##### ######### |
| ###### # ### # |
| # # # # #### # |
@ ## ####
|# # # ### ## |
|## ## #### # # |
|#### ##### # ## |
শীর্ষ সারিগুলি ফ্যালকনের বামে রয়েছে, নীচের সারিগুলি ফ্যালকনের ডানদিকে এবং কলামগুলি জাহাজের সামনের অংশটি উপস্থাপন করে।
- প্রতিটিই
#
একটি বাধা। - প্রতিটি স্থান খালি জায়গা যেখানে জাহাজটি উড়ে যেতে পারে।
- ইনপুটটি সর্বদা 7 টি অক্ষর বেশি। এটি গ্রহাণু ম্যাপিং প্রস্থ সীমা।
- ইনপুটটি সর্বদা 32 অক্ষর দীর্ঘ হয় (ক্ষেত্রের জন্য 30 টি এবং শুরু এবং শেষ সীমাতে 2)। এটি গ্রহাণু ম্যাপিং গভীরতার সীমা। উল্লম্ব বারগুলি
|
ম্যাপিংয়ের শুরু এবং শেষ চিহ্নিত করে। @
ফ্যালকন। এটি সর্বদা মাঝারি সারিতে (চতুর্থ সারিতে) এবং ইনপুটটিতে প্রথম কলামে থাকে।- শেষ কলামের উল্লম্ব বারগুলির মধ্যে স্থানটি স্থানটি জাহাজে পৌঁছানোর জায়গাটি। এটি সর্বদা মাঝারি সারিতে (চতুর্থ সারিতে) এবং ইনপুটটিতে সর্বশেষ কলামে থাকে।
ইনপুটটি মাল্টি-লাইন স্ট্রিং, স্ট্রিংগুলির একটি অ্যারে, STDIN বা কোনও ফাংশন পরামিতি থেকে নেওয়া বা কোনও ফাইল থেকে পড়তে পারে।
সম্ভাব্য কসরত
আপনি টিআইই-ফাইটারদের দ্বারা অনুসরণ করা হয়, তাই আপনাকে অবশ্যই সর্বদা এগিয়ে যেতে হবে। জাহাজটি প্রতিটি পদক্ষেপে তিনটি উপায়ে উড়তে পারে:
-
অগ্রবর্তী/
এগিয়ে এবং বাম দিকে ঘুরুন\
ফরোয়ার্ড করুন এবং ডানদিকে ঘুরুন
উদাহরণস্বরূপ, এগুলি বৈধ পাথ:
@---
--
/ \ /
@ -
-
/ \
/ \
@ \
আপনি দেখতে পাচ্ছেন, প্রতি কলামে সর্বদা ঠিক একটি পদক্ষেপ থাকে। ফ্যালকন একটি জাঙ্কের টুকরো, সুতরাং এটি হিংসাত্মক টার্ন করতে পারে না। যেমন যার মানে প্যাচসমূহ /\
বা \/
করছে অননুমোদিত । -
দুটি বিপরীত টার্নের মধ্যে অবশ্যই একটি খাঁটি ফরোয়ার্ড থাকতে হবে be অন্যদিকে, একাধিক ধাপে একাধিক পদক্ষেপের জন্য একদিকে ঘুরানো সম্ভব, যেমন উপরে বর্ণিত।
ফ্যালকন ক্র্যাশ করে যদি একটি পদক্ষেপ জাহাজটিকে এমন কোনও স্থানে নিয়ে যায় যেখানে কোনও বাধা থাকে। উদাহরণস্বরূপ, এই পদক্ষেপগুলি ক্র্যাশগুলির দিকে নিয়ে যায়:
@-#
@
\
#
#
/
@
মনে রাখবেন এটি কোনও ক্রাশ নয়:
@-#
\
-
আউটপুট
আপনাকে অবশ্যই একই গ্রহাণু ক্ষেত্র ASCII আউটপুট করতে হবে, শেষের দিকে বৈধ পথ দিয়ে। ফ্যালকন অবশ্যই প্রারম্ভের জায়গার পরিবর্তে শেষ স্পটে প্রিন্ট করা উচিত।
উদাহরণস্বরূপ, পূর্বে প্রদত্ত ইনপুট উদাহরণের জন্য একটি বৈধ আউটপুট হ'ল:
| ##### ######### |
| ###### #-------- ### # |
| # # #/ # ####\ # |
--------- ## \ #### ----@
|# # # ### \ ## / |
|## ## #### \ #/ # |
|#### ##### #-- ## |
আপনার পথের কেবলমাত্র ফ্যালকন ক্রাশ না করা দরকার। এটি সবচেয়ে সংক্ষিপ্ততম পথ হওয়ার দরকার নেই।
আপনি ধরে নিতে পারেন যে সর্বদা সর্বশেষে অন্তত একটি সম্ভাব্য পথ থাকবে।
গ্রাহকক্ষেত্রটি ঠিক এই পোস্টে যেমন ছাপানো হয় ততক্ষণ আপনি কোনও ফাইল বা অন্য যে কোনও সমতলে আউটপুট করতে পারবেন (যেমন পথের জন্য স্থানাঙ্কের একটি তালিকা আউটপুট বৈধ নয়)।
পরীক্ষার মামলা
একটি সাধারণ গ্রহাণু ক্ষেত্র
| ##### ######### | | ###### # ### # | | # # # # #### # | @ ## #### |# # # ### ## | |## ## #### # # | |#### ##### # ## |
সম্ভাব্য আউটপুট
| ##### ######### | | ###### #-------- ### # | | # # #/ # ####\ # | --------- ## \ #### ----@ |# # # ### \ ## / | |## ## #### \ #/ # | |#### ##### #-- ## |
হাইপারগ্রেগুলার গ্রহাণু ক্ষেত্র
|# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # | @ # # # # # # # # # # # # # # |# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # |
সম্ভাব্য আউটপুট
|# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # | -# #-# #-# #-# #-# #-# #-# #--@ |#\#/#\#/#\#/#\#/#\#/#\#/#\#/# | | #-# #-# #-# #-# #-# #-# #-# #| |# # # # # # # # # # # # # # # |
ডেথ স্টারের মূল
| # # # # | | # # # | | # # # # # | @ # # # # # | # # # # | | # # # # # | | # # # # |
সম্ভাব্য আউটপুট
| # # # -- # | | --- # # / #\ - | | / #\ # # / # \ /#\ | - # \ # #/ # - # ----@ | # \ # ---- # # | | # \#/ # # # | | # - # # # |
ডেথ স্টার ট্রেঞ্চ
|##############################| |##############################| |##############################| @ |##############################| |##############################| |##############################|
আউটপুট
|##############################| |##############################| |##############################| ------------------------------@ |##############################| |##############################| |##############################|
গ্রহাণু গুহা
|### ##########################| |## # ############### ## ######| |# ### ######## ### ## # #####| @ ###### ###### ### ## ### |######## ### ### ## #########| |########## # ### ## ##########| |########### #####|
সম্ভাব্য আউটপুট
|###-##########################| |##/#\############### ##-######| |#/###--######## ### ##/#\#####| -######\###### ### ##/###-----@ |########--### ### ##/#########| |##########\# ### ##/##########| |###########-------- #####|
স্কোরিং
আর 2 ডি 2 জলাভূমিতে সাঁতার কাটাতে ব্যস্ত, তাই আপনাকে নিজেই ফ্যালকনের নিয়ামককে প্রোগ্রাম করতে যাবেন, যা ক্লান্তিকর। অতএব সংক্ষিপ্ততম কোড জিতেছে ।
-
প্রতিটি মোড়ের পথে রয়েছে , এটি একটি "সামনের" পদক্ষেপ হিসাবে সংজ্ঞায়িত হয়েছে। তবে আসল পদক্ষেপগুলি সর্বদা দুটি তির্যক-বাম এবং পরে দুটি তির্যক-ডান থাকে।