कुछ पाठ-आधारित दुष्ट-पसंद आपको दीवारों में नहीं चलने देते हैं, और यदि आप कोशिश करते हैं तो आपको अपना कदम वापस देते हैं। जब आप खिलाड़ी को निकटतम वैध दिशा में ले जा सकते हैं तो ऐसा क्यों करें?
चुनौती
फ़ंक्शन का एक प्रोग्राम लिखें, जिसमें एक दिशा और 3 बाय 3 ग्रिड वर्ण दिए गए हैं, खिलाड़ी द्वारा एक कदम उठाए जाने के बाद उसी ग्रिड को आउटपुट करता है।
उदाहरण के लिए,
9
#..
.@#
#.#
हो जाता है
#.@
..#
#.#
इनपुट
दिशा 1 से 9 तक के एकल अंक द्वारा दी जाती है, प्रत्येक 8 कार्डिनल दिशाओं के अनुरूप होती है और स्थिर रहती है। यह कीपैड पर संख्याओं के सापेक्ष स्थानों से लिया गया है:
एनडब्ल्यू एन एनई .. \ _ | / ... ... 8 ९ डब्ल्यू- ४ ५ ६ -ई ... १ २ ३ ../ | \ एसडब्ल्यू एस एसई
हालाँकि, आप संख्या का उपयोग 123, 456, 789 के बजाय 789, 456, 123 से कर सकते हैं। दूसरे शब्दों में, यदि आप ऐसा चुनते हैं तो आप ऊपर और नीचे की 2 पंक्तियों या संख्याओं को स्वैप कर सकते हैं। ये केवल 2 स्वीकार्य सूचकांक संयोजन हैं।3 बाय 3 ग्रिड में 3 अलग-अलग, प्रिंट करने योग्य एएससीआईआई अक्षर शामिल होंगे जो वॉक करने योग्य फर्श, दीवारों और खिलाड़ी का प्रतिनिधित्व करते हैं। (परीक्षण मामलों में,
.
फर्श के लिए उपयोग किया जाता है,#
एस दीवारें हैं, और@
खिलाड़ी है)- आप यह चुन सकते हैं कि आपके प्रोग्राम में कौन से पात्र हैं, लेकिन आपको उन्हें अपने उत्तर में बताना होगा और उन्हें कई परीक्षणों के अनुरूप होना चाहिए।
- चरित्र का प्रतिनिधित्व करने वाला चरित्र हमेशा 3 से 3 ग्रिड के बीच में होगा, और दिशा हमेशा 1 और 9 (incl) के बीच होगी।
- आप किसी भी क्रम में इनपुट ले सकते हैं
- 3 बाय 3 ग्रिड एक चार सरणी, एक स्ट्रिंग सरणी, एक 9 लंबाई स्ट्रिंग, या एक अन्य उचित विकल्प के रूप में इनपुट हो सकता है।
उत्पादन
- किसी फ़ंक्शन, या आउटपुट से StdOut या निकटतम वैकल्पिक पर लौटें
- अनुगामी रिक्त स्थान और newlines की अनुमति है
- आपको इनपुट के समान वर्ण अभ्यावेदन का उपयोग करना चाहिए
- आउटपुट के लिए इनपुट के लिए अनुमत समान प्रारूप की अनुमति है
खिलाड़ी कैसे चलता है
यदि निर्दिष्ट दिशा एक दीवार से अवरुद्ध है (जैसे यदि उपरोक्त उदाहरण में दिशा 6 थी), तो 2 निकटतम दिशाओं को देखें:
- यदि एक (और केवल एक) दिशा मुक्त है, तो खिलाड़ी को उस दिशा में ले जाएं।
- यदि कोई निर्देश मुक्त नहीं हैं, तो अगले निकटतम 2 दिशाओं (दिशा 5 को छोड़कर) को देखें। यदि आपने चारों ओर से लपेट लिया है और कोई खुली दिशा नहीं देखी है (खिलाड़ी दीवारों से घिरा हुआ है), तो खिलाड़ी को स्थानांतरित न करें
- यदि दोनों दिशाएं खुली हैं, तो यादृच्छिक पर स्थानांतरित करने के लिए एक को चुनें (हालांकि जरूरी नहीं कि समान रूप से)।
यदि दी गई दिशा 5 है, तो खिलाड़ी को स्थानांतरित न करें
परीक्षण के मामलों
( #
= दीवार, .
= तल, @
= खिलाड़ी)
इनपुट: 9 # .. । @ # #। # आउटपुट: #। @ .. # #। # इनपुट: 3 # .. । @ # #। # आउटपुट: # .. .. # # @ # इनपुट: 7 ##। # @ # .. # आउटपुट: ## @ ##। #। # या #। .. # @। # इनपुट: 5 ... । @। ... आउटपुट: ... । @। ... इनपुट: 2 ### # @ # ### आउटपुट: ### # @ # ###
स्कोरिंग
यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे छोटा जवाब है।
123;456;789
इसके बजाय निर्देशों का उपयोग कर सकता हूं 789;456;123
?
yuhjklbn
? आरआईपी।