मूल रूप से एक बहुत ही नई गूढ़ भाषा है जो समस्याओं के एक बहुत विशिष्ट सबसेट के लिए संक्षिप्त, गोल्फ की तरह जवाब बनाने में सक्षम है। यह अद्वितीय है कि यह 3x3 रूबिक के घन के रूप में स्मृति को संग्रहीत करता है, जिससे अधिकांश भाषाओं की तुलना में गणना बहुत कम तुच्छ हो जाती है। मूल रूप से, प्रोग्रामर को चेहरों पर संग्रहीत मूल्यों में हेरफेर करने के लिए आंतरिक क्यूब को घुमाना चाहिए, फिर उन गणनाओं का उपयोग करें। गणना एक एकल 32-बिट पूर्णांक पर की जाती है जिसे एक काल्पनिक चेहरे पर संग्रहीत किया जाता है जिसे "नोटपैड" के रूप में जाना जाता है। इसके अतिरिक्त, मूल रूप से उपयोगकर्ता इनपुट का अनुरोध कर सकता है और इसे केवल एक पूर्णांक मान वाले इनपुट बफर में संग्रहीत कर सकता है।
द क्यूब
घन के चेहरे हैं यू पी, डी खुद, एल ईएफटी, आर ight, एफ ront, और बी पावती:
UUU
UUU
UUU
LLLFFFRRRBBB
LLLFFFRRRBBB
LLLFFFRRRBBB
DDD
DDD
DDD
जब प्रोग्राम शुरू होता है, तो क्यूब को इस तरह से इनिशियलाइज़ किया जाता है कि उस चेहरे पर प्रत्येक वर्ग उस चेहरे के 0-आधारित इंडेक्स के बराबर हो:
000
000
000
111222333444
111222333444
111222333444
555
555
555
जब भी कोई चेहरा घुमाया जाता है, तो उसे हमेशा दक्षिणावर्त घुमाया जाता है:
Cubically> F1
000
000
111
115222033444
115222033444
115222033444
333
555
555
एक चेहरे के मूल्य को उस चेहरे पर हर वर्ग के योग के रूप में परिभाषित किया गया है। उदाहरण के लिए, उपरोक्त क्यूब में, चेहरे 0
का मूल्य 3 है।
वाक्य - विन्यास
कमांड को पहले मेमोरी में कमांड लोड करके निष्पादित किया जाता है, फिर कमांड को निष्पादित करने के लिए इस पर तर्क दिया जाता है। उदाहरण के लिए, कमांड F1
कमांड F
को मेमोरी में लोड करेगा , फिर इसे तर्क के साथ कॉल करें 1
। इसके अतिरिक्त, F13
कमांड F
को मेमोरी में लोड करेगा , फिर इसे तर्क 1
से कॉल करें, फिर इसे तर्क से कॉल करें 3
। किसी भी गैर-डिजिट वर्ण को एक कमांड के रूप में माना जाता है, और किसी भी अंक को एक तर्क के रूप में माना जाता है।
आपका कार्य
आपका काम अपनी पसंद की भाषा में क्यूबिकली इंटरनल मेमोरी क्यूब को लागू करना है। आपका कोड भाषा के बहुत छोटे हिस्से को निष्पादित करने में सक्षम होना चाहिए।
आदेश
R
- घन की दाईं ओर घुमाएं निर्दिष्ट समय की संख्या।L
- क्यूब की बाईं ओर घुमाएँ निर्दिष्ट समय की संख्या।U
- घन के शीर्ष चेहरे को कई बार निर्दिष्ट संख्या में घुमाएं।D
- घन घड़ी के नीचे चेहरा घुमाएँ निर्दिष्ट समय की संख्या।F
- क्यूब के सामने के चेहरे को कई बार निर्दिष्ट संख्या में घुमाएं।B
- क्यूब क्लॉकवाइज़ के पीछे के चेहरे को निर्दिष्ट संख्या में घुमाएँ।%
- दिए गए चेहरे पर मूल्य को आउटपुट करता है। एक चेहरे के मूल्य को उस चेहरे पर सभी वर्गों के योग के रूप में परिभाषित किया गया है।
नियम
- आप इस चुनौती को हल करने में सक्षम प्रोग्राम या फ़ंक्शन लिखने के लिए पोस्ट किए जाने से पहले या बाद में बनाई गई किसी भी भाषा का उपयोग कर सकते हैं।
- इनपुट एसटीडीआईएन के माध्यम से या तो एक स्ट्रिंग के रूप में, या एक चरित्र सरणी के रूप में पारित किया जाएगा (आप चुनते हैं, कृपया निर्दिष्ट करें)।
- आउटपुट या तो STDOUT या फ़ंक्शन के आउटपुट के रूप में पारित किया जाना चाहिए, और यह या तो पूर्णांक होना चाहिए, केवल अंकों वाला एक स्ट्रिंग या अंकों की एक सरणी। यदि आपकी भाषा आपको एक अनुगामी न्यूलाइन को आउटपुट करने की आवश्यकता है , तो आप ऐसा कर सकते हैं।
- इनपुट हमेशा निम्न प्रारूप में होगा
([UDLRFB]\d*)*%[0-5]
:। इनपुट में कोई व्हाट्सएप वर्ण नहीं होगा। - के लिए इनपुट
%
हमेशा 0-आधारित इंडेक्स का उपयोग करेगा।
यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे छोटा जवाब है।
परीक्षण के मामलों
%0 -> 0
%1 -> 9
%2 -> 18
%3 -> 27
%4 -> 36
%5 -> 45
R1%2 -> 27
RD3F2%5 -> 32
L1R23F1B5U9D2%3 -> 17
अधिक परीक्षण मामलों के लिए, TIO दुभाषिया देखें । यदि TIO काम नहीं कर रहा है, तो आप इसके बजाय Lua दुभाषिया का उपयोग कर सकते हैं ।
4
बीच R
और उसके बीच के कई को याद किया ? D
RD3F2%5 -> 30