सुश्री पीएसी-मैन की सलाह पर जो उसे अधिक वजन होने के बारे में चिंतित हैं, पीएसी-मैन ने अपने दैनिक पीएसी-डॉट सेवन का ट्रैक रखने का फैसला किया है। भूलभुलैया में दिए गए रास्ते पर पीएसी-डॉट्स की संख्या को गिनने में उसकी मदद करें!
उलझन
भूलभुलैया के अपने एन्कोडिंग का निर्माण करने में आपकी मदद करने के लिए, आप यहां कुछ कच्चे डेटा प्राप्त कर सकते हैं ।
पीएसी-मैन की यात्रा
इस चुनौती के संदर्भ में, निम्नलिखित नियम लागू होते हैं:
- सबसे पहले, अच्छी खबर: भूत वहाँ नहीं हैं।
- पीएसी-मैन हमेशा उपरोक्त तस्वीर पर पूर्व की ओर स्थित स्थिति में अपनी दौड़ शुरू करता है। शुरुआती स्थिति में कोई पीएसी-डॉट नहीं है।
- जब तक वह सीधे रास्ते पर चल रहा है, वह अगले चौकों के लिए आगे बढ़ रहा है।
- जब वह किसी अन्य उपलब्ध पथ (नक्शे पर नारंगी वर्ग) के बिना 90 ° मोड़ का सामना करता है , तो वह स्वचालित रूप से और व्यवस्थित रूप से मोड़ लेता है।
- जब वह एक जंक्शन का सामना करता है, जहां कई रास्ते उपलब्ध हैं (नक्शे पर हरे रंग के वर्ग), वह या तो उसी दिशा में जारी रह सकता है - यदि लागू हो - या दूसरी दिशा चुनें (जिसमें यू-टर्न करना भी शामिल है)।
- जब पैक-मैन भूलभुलैया के मध्य बाईं या मध्य दाईं ओर से बाहर निकलता है, तो वह तुरंत विपरीत दिशा में पहुंच जाता है।
- पीएसी मैन अपने द्वारा अनुसरण किए जा रहे पथ पर सभी पीएसी-डॉट्स खाता है। एक बार एक पच-डॉट खाया गया है, यह भूलभुलैया से हटा दिया जाता है।
चुनौती
इनपुट
आपको जंक्शन पर पीएसी-मैन के व्यवहार का वर्णन करते हुए एक तार दिया जाएगा जो वह पहुंचने वाला है। यह तार निम्नलिखित वर्णों से बना होगा:
L
: बाईं ओर 90 ° मोड़R
: दाईं ओर 90 ° मोड़F
: आगे बढ़ो (कोई दिशा परिवर्तन नहीं)B
: पीछे की ओर जाएं (एक यू-टर्न करें)
जब सभी पात्रों को संसाधित किया गया है, तो पीएसी-मैन अगले मुक़ाबले में रुकता है जिसका वह सामना करता है।
उत्पादन
आपको इनपुट पथ पर खाए गए Pac-Dots की संख्या को प्रिंट या आउटपुट करना होगा।
नियम
- आप एक पूर्ण कार्यक्रम या एक फ़ंक्शन लिख सकते हैं।
- आप या तो अपरकेस या लोअरकेस में इनपुट ले सकते हैं, या तो एक स्ट्रिंग या पात्रों की एक सरणी के रूप में। आप अन्य वर्ण (लेकिन प्रति दिशा केवल एक वर्ण) या पूर्णांकों का भी उपयोग कर सकते हैं
[0 .. 9]
। यदि आप ऐसा करते हैं, तो कृपया अपने उत्तर में इसे स्पष्ट रूप से निर्दिष्ट करें। - आप मान सकते हैं कि इनपुट हमेशा मान्य है। (नीचे दी गई jsFiddle त्रुटियों का पता लगाएगा, लेकिन आप ऐसा करने वाले नहीं हैं।)
- यह कोड-गोल्फ है, इसलिए बाइट्स में सबसे छोटा कोड जीत जाता है।
- मानक खामियों को मना किया जाता है।
संकेत
भूलभुलैया के सटीक आकार को संग्रहीत करने के लिए यह आवश्यक नहीं है और न ही इष्टतम हो सकता है।
परीक्षण मामलों और डेमो
निम्नलिखित परीक्षण मामलों - या किसी अन्य इनपुट - का परीक्षण इस jsFiddle में किया जा सकता है ।
1. Input : ""
Output : 1
Comment: Pac-Man just advances to the first junction, eats the Pac-Dot on it and stops.
2. Input : "L"
Output : 7
3. Input : "FFR"
Output : 13
4. Input : "LFLR"
Output : 17
Comment: Pac-Man will exit on the middle right side and re-appear on the left side.
5. Input : "BBBB"
Output : 2
6. Input : "BRRFFFL"
Output : 15
7. Input : "LFFRLFFFFRF"
Output : 50
8. Input : "BRFRLRFRLFR"
Output : 54
Comment: Pac-Man will exit on the middle left side and re-appear on the right side.
9. Input : "FFLRLFFLLLLFFBFLFLRRRLRRFRFLRLFFFLFLLLLFRRFBRLLLFBLFFLBFRLLR"
Output : 244
Comment: All cleared!