विवरण
इस चुनौती का कार्य एक ऐसे प्रोग्राम या फ़ंक्शन को तैयार करना है जो किसी दिए गए ऑब्जेक्ट को स्पेस में ट्रैक करता है।
आई / ओ
आपके कार्यक्रम को 3 इनपुट दिए जाएंगे, जिन्हें किसी भी समझदारी से लिया जा सकता है :
nविमान के किनारे का आकार होगा। (इसलिए, , आपका विमान )। आप मान सकते हैं nकि हमेशा एक अजीब पूर्णांक होगा।
s निर्देशांक की एक जोड़ी के रूप में दी गई वस्तु की प्रारंभिक स्थिति होगी ।
Dआदेशित जोड़े का वेक्टर होगा। Dप्रारूप का पालन करेंगे , जहां हमेशा रहेंगे एक की , कार्डिनल और प्राथमिक intercardinal दिशाओं के लिए, और हो जाएगा 'टिक' की संख्या के लिए एक पूर्णांक।'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'
इन सूचनाओं को देखते हुए, आपके कार्यक्रम को विमान में ऑब्जेक्ट की ट्रैकिंग का उत्पादन करना होगा।
नियम
आउटपुट में विमान की सीमाएँ होनी चाहिए । उदाहरण के लिए:
- 21012 + + ┌─────┐ 2 │ 1│ │ 0│ │ 1│ │ 2 │ -└─────┘
एक खाली विमान का एक उदाहरण होगा । ऊपर और बगल की संख्या केवल संदर्भ के लिए है और इसे मुद्रित करने की आवश्यकता नहीं है।
जब तक यह व्हाट्सएप (या व्हॉट्सएप के रूप में रेंडर) नहीं है, तब तक आप सीमाओं के लिए जो भी चरित्र का उपयोग कर सकते हैं। आपके द्वारा चुने गए पात्रों को पूरा विमान परिसीमन करना चाहिए, जिसका अर्थ है कि उनके बीच कोई अंतराल नहीं हो सकता है।
कुछ स्वीकार्य विमानों में शामिल हैं:
- .... ---- + - +
│ │। । | | | |
│ │। । | | | |
└──┘; ....; ----; + - +
अस्वीकार्य विमानों में शामिल हैं:
.... .... ++++। ।
। । + +। ।
। + +। ।
; ....; ....; + +; । ।
ट्रैक की जाने वाली वस्तु आप जो भी चरित्र चुनते हैं, वह तब तक हो सकता है जब तक कि यह केवल विमान पर 1 स्थान रखता है और सीमाबद्ध पात्रों से अलग है।
ट्रैक किए गए ऑब्जेक्ट का ट्रेस भी हो सकता है कि आप जो भी अक्षर चुनते हैं, जब तक वे विमान पर केवल 1 स्थान पर कब्जा कर लेते हैं और ऑब्जेक्ट से अलग होते हैं।
प्रत्येक तत्व के लिए में , वस्तु को स्थानांतरित करना होगा की ओर रिक्त स्थान , और पीछे एक निशान छोड़।
यदि वस्तु एक सीमा से टकराती है, तो यह परिलक्षित होगी। यदि ऑब्जेक्ट में अभी भी कोई चाल बाकी है, तो वह उस दिशा में आगे बढ़ता रहेगा जिसे वह प्रतिबिंबित करता था।
संदर्भ के लिए, ये निर्देश एक दूसरे को दर्शाते हैं:
→ जब ऊपर या नीचे की सीमा मिलती है;
→ जब एक पार्श्व सीमा मिलती है;
अंतिम आउटपुट में नवीनतम संभव निशान शामिल होंगे, अर्थात, यदि ऑब्जेक्ट एक ऐसे स्थान पर ट्रेस छोड़ देगा जहां पहले से ही एक ट्रेस है, तो नया ट्रेस वर्ण पुराने को अधिलेखित कर देगा।
हमेशा की तरह, मानक कमियां डिफ़ॉल्ट रूप से मना की जाती हैं ।
स्कोरिंग:
यह एक कोड-गोल्फ चुनौती है।
उदाहरण:
इनपुट: , ,
इसे काम करना:
0 ┌─────┐ │ │ │ │ 0│ │ │ │ │ │ │ └─────┘
0 ┌─────┐ │ │ │ │ \ │ 0│ \ _ │ │ │ │ │ └─────┘
0 ┌─────┐ │∧ │∧ │ | \ │ 0│ │ \ │ │ │ │ │ └─────┘
, जो आउटपुट होगा।
0 ┌─────┐ │∧ │∧ │ | \ │ 0│ │ \ │ │ │ │ │ └─────┘
(0s केवल संदर्भ के लिए हैं, और उन्हें अंतिम आउटपुट में होने की आवश्यकता नहीं है।)
इनपुट: , ,
ध्यान दें कि, जब :
0 ┌─────────┐ │ │ │ │ │ │ │ │ │ 0 | / | │ | | / | │ │ / │ │ \ / │ │ │ │ └─────────┘
वस्तु को दो बार परिलक्षित किया गया है : एक बार एस डब्ल्यू की ओर जाते समय विमान के निचले हिस्से तक पहुंचना , जहां यह एन डब्ल्यू को दर्शाता है ; फिर एक बार विमान के बाईं ओर पहुँचने पर, जहाँ N W , N E को दर्शाता है ।
अंतिम उत्पादन पर आता है :
0 ┌─────────┐ │ │ │ │ \ │ │ \ │ │ \ │ 0⟩│ / | │ | / / / / / │ \ / / │ │ \ _ / │ ∨ ∨ │ ∨ └─────────┘
परीक्षण के मामलों:
इनपुट: n = 5 , एस = ( 0 , 0 ) , डी = [ ( ' एन डब्ल्यू ' , 2 ) , ( ' एस ' , 2 ) , ( ' ई ' , 1 )
आउटपुट:
0 ┌─────┐ │∧ │∧ │ | \ │ 0│ │ \ │ │ │ │ │ └─────┘
इनपुट: , ,
आउटपुट:
0 ┌─────────┐ │ │ │ │ \ │ │ \ │ │ \ │ 0⟩│ / | │ | / / / / / │ \ / / │ │ \ _ / │ ∨ ∨ │ ∨ └─────────┘
इनपुट: , ,
आउटपुट:
0 ┌───┐ │ | │ 0│- ○ ┐│ │ | │ └───┘
इनपुट: , ,
आउटपुट:
0 ┌───────────┐ │ │ │ │ / \ │ \ - / - \ \ \ \ \ _ / \ _ \ │ \ _ | \ _ │ 0│ | / ⟩│ / | \ / / / │ | / │ │ │ | / \ │ │ │ \ │ │ \ │ └───────────┘
'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'इसके बजाय 0-अनुक्रमित (या 1-अनुक्रमित) पूर्णांक के रूप में ले सकते हैं ? तो उदाहरण के लिए [('NW',2),('S',2),('E',1)]बन जाता [[7,2],[4,2],[2,1]]है।