परिचय
हर कोई जानता है कि क्षुद्रग्रह क्षेत्र को सफलतापूर्वक नेविगेट करने की संभावना लगभग 3,720 से 1. है, लेकिन आपकी चेतावनी के बावजूद, हान सोलो अभी भी अपनी किस्मत आजमाने के लिए तैयार है।
अपने कृत्रिम जीवन के लिए डरते हुए, आप जहाज की अजीब बोली में कोड को तय करते हैं ( पढ़ें: आपकी पसंदीदा कोड गोल्फ भाषा ), एक क्षुद्रग्रह परिहार कार्यक्रम जो तय करेगा कि क्षुद्रग्रह क्षेत्र ASCII भूलभुलैया में कौन सा रास्ता लेना है।
इनपुट
मिलेनियम फाल्कन में एक क्षुद्रग्रह क्षेत्र मानचित्रण कार्यक्रम है, जो इसके समान डेटा देता है:
| ##### ######### |
| ###### # ### # |
| # # # # #### # |
@ ## ####
|# # # ### ## |
|## ## #### # # |
|#### ##### # ## |
शीर्ष पंक्तियाँ फाल्कन की बची हुई हैं, नीचे की पंक्तियाँ फाल्कन के दाईं ओर हैं, और कॉलम यह दर्शाता है कि जहाज के सामने क्या है।
- प्रत्येक
#
एक बाधा है। - प्रत्येक स्थान खाली स्थान है जिसमें जहाज उड़ सकता है।
- इनपुट हमेशा 7 वर्ण ऊंचा होता है। यह क्षुद्रग्रह मानचित्रण चौड़ाई सीमा है।
- इनपुट हमेशा 32 अक्षर लंबा होता है (30 ही क्षेत्र के लिए और 2 शुरू और अंत सीमा के लिए)। यह क्षुद्रग्रह मानचित्रण गहराई सीमा है। ऊर्ध्वाधर पट्टियाँ
|
मानचित्रण की शुरुआत और अंत को चिह्नित करती हैं। @
फाल्कन है। यह हमेशा मध्य पंक्ति (4 वीं पंक्ति) और इनपुट में पहला कॉलम होता है।- अंतिम स्तंभ पर ऊर्ध्वाधर सलाखों में छोड़ा गया स्थान वह स्थान है जहां जहाज को पहुंचना चाहिए। यह हमेशा मध्य पंक्ति (चौथी पंक्ति) और इनपुट में अंतिम कॉलम होता है।
इनपुट को मल्टी-लाइन स्ट्रिंग, स्ट्रिंग्स की एक सरणी, STDIN या फ़ंक्शन मापदंडों से लिया जा सकता है, या किसी फ़ाइल से पढ़ा जा सकता है।
संभव युद्धाभ्यास
आपको टीआईई-फाइटर्स द्वारा पीछा किया जाता है, इसलिए आपको हमेशा आगे बढ़ना चाहिए। इस प्रकार तीन तरीके हैं जिससे जहाज प्रत्येक कदम पर उड़ सकता है:
-
आगे/
आगे और बाएँ मुड़ें\
फॉरवर्ड करें और दाईं ओर मुड़ें
उदाहरण के लिए, ये मान्य पथ हैं:
@---
--
/ \ /
@ -
-
/ \
/ \
@ \
जैसा कि आप देख सकते हैं, प्रति कॉलम हमेशा एक चाल होती है। फाल्कन कबाड़ का एक टुकड़ा है, इसलिए यह हिंसक मोड़ नहीं कर सकता है। जैसे जिसका अर्थ है चलता रहता है /\
या \/
कर रहे हैं की अनुमति नहीं दी । कम से कम -
दो विपरीत मोड़ के बीच एक शुद्ध आगे होना चाहिए । दूसरी ओर, एक पंक्ति में कई चरणों के लिए एक तरह से मोड़ संभव है, जैसा कि ऊपर देखा गया है।
फाल्कन दुर्घटनाग्रस्त हो जाता है अगर एक कदम जहाज को उस स्थान पर ले जाता है जहां एक बाधा है। उदाहरण के लिए, इन चालों से दुर्घटनाएँ होती हैं:
@-#
@
\
#
#
/
@
ध्यान दें कि यह कोई दुर्घटना नहीं है:
@-#
\
-
उत्पादन
आपको उसी क्षुद्रग्रह क्षेत्र ASCII का उत्पादन करना चाहिए, जिसके अंत में एक वैध रास्ता है। फाल्कन को स्टार्ट स्पॉट के बजाय अंतिम स्थान पर मुद्रित किया जाना चाहिए।
उदाहरण के लिए, पहले दिए गए इनपुट उदाहरण के लिए एक वैध आउटपुट होगा:
| ##### ######### |
| ###### #-------- ### # |
| # # #/ # ####\ # |
--------- ## \ #### ----@
|# # # ### \ ## / |
|## ## #### \ #/ # |
|#### ##### #-- ## |
आपके मार्ग को केवल फाल्कन को क्रैश करने की आवश्यकता नहीं है। इसके लिए सबसे छोटा रास्ता संभव नहीं है।
आप यह मान सकते हैं कि हमेशा अंत तक कम से कम एक संभव रास्ता होगा।
आप STDOUT में, किसी फ़ाइल या किसी भी समकक्ष के रूप में लंबे समय तक क्षुद्रग्रह क्षेत्र में मुद्रित कर सकते हैं, जैसा कि वे इस पोस्ट में हैं (उदाहरण के लिए पथ के लिए निर्देशांक की सूची का आउटपुट मान्य नहीं है)।
परीक्षण के मामलों
एक सामान्य क्षुद्रग्रह क्षेत्र
| ##### ######### | | ###### # ### # | | # # # # #### # | @ ## #### |# # # ### ## | |## ## #### # # | |#### ##### # ## |
संभव उत्पादन
| ##### ######### | | ###### #-------- ### # | | # # #/ # ####\ # | --------- ## \ #### ----@ |# # # ### \ ## / | |## ## #### \ #/ # | |#### ##### #-- ## |
अनियमित क्षुद्रग्रह क्षेत्र
|# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # | @ # # # # # # # # # # # # # # |# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # |
संभव उत्पादन
|# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # | -# #-# #-# #-# #-# #-# #-# #--@ |#\#/#\#/#\#/#\#/#\#/#\#/#\#/# | | #-# #-# #-# #-# #-# #-# #-# #| |# # # # # # # # # # # # # # # |
डेथ स्टार का कोर
| # # # # | | # # # | | # # # # # | @ # # # # # | # # # # | | # # # # # | | # # # # |
संभव उत्पादन
| # # # -- # | | --- # # / #\ - | | / #\ # # / # \ /#\ | - # \ # #/ # - # ----@ | # \ # ---- # # | | # \#/ # # # | | # - # # # |
मौत सितारा खाई
|##############################| |##############################| |##############################| @ |##############################| |##############################| |##############################|
उत्पादन
|##############################| |##############################| |##############################| ------------------------------@ |##############################| |##############################| |##############################|
क्षुद्रग्रह गुहा
|### ##########################| |## # ############### ## ######| |# ### ######## ### ## # #####| @ ###### ###### ### ## ### |######## ### ### ## #########| |########## # ### ## ##########| |########### #####|
संभव उत्पादन
|###-##########################| |##/#\############### ##-######| |#/###--######## ### ##/#\#####| -######\###### ### ##/###-----@ |########--### ### ##/#########| |##########\# ### ##/##########| |###########-------- #####|
स्कोरिंग
R2D2 दलदल में तैरने में व्यस्त है, इसलिए आपको अपने आप से फाल्कन के नियंत्रक को प्रोग्राम करना होगा, जो थकाऊ है। इसलिए सबसे छोटा कोड जीतता है ।
-
प्रत्येक मोड़ पर मार्ग में है, जिसे "आगे" चाल के रूप में परिभाषित किया गया है। लेकिन वास्तविक चालें हमेशा दो विकर्ण-बाएं और उसके बाद दो विकर्ण-दाएं होती हैं।