आपका काम चालों का एक यादृच्छिक अनुक्रम बनाना है, जिसका उपयोग एक रूबिक क्यूब को घसीटने के लिए किया जा सकता है। इस तरह की हाथापाई ठीक 25 चालों से बनी होती है। प्रत्येक चाल में अक्षर के UDRLFBवैकल्पिक रूप से एक प्रत्यय होता है '2।
इस नोटेशन को सिंगमास्टर नोटेशन कहा जाता है। UDRLFB6 चेहरों में से एक का प्रतिनिधित्व करता है और वैकल्पिक प्रत्यय '2मोड़ कोण का प्रतिनिधित्व करता है। यह जानकारी किसी भी तरह से कार्य को हल करने के लिए आवश्यक नहीं है।
आश्वस्त करने के लिए, कि स्क्रैम्बल 'अच्छी गुणवत्ता' के हैं, निम्नलिखित दो नियमों को लागू करना है:
लगातार दो चालों में समान अक्षर नहीं होना चाहिए। यह लगातार चलता रहता है पर रोक लगाई
UU,DD,RR,LL,FFऔरBBऔर उनके सभी संयोजनों की तरह वैकल्पिक प्रत्ययों का उपयोग करU2UयाU'U'।इन चाल जोड़ी को प्रतिबंधित कर दिया जाता है, क्योंकि वे आसानी से 1 या 0 चालों तक कम हो सकते हैं।
U2Uजैसा प्रभाव हैU',R'Rवैसा ही प्रभाव।लगातार तीन चालें एक ही अक्षर समूह की नहीं होनी चाहिए। पत्र समूह हैं
UD,RLऔरFB। यह नियम अतिरिक्त लगातार चलता रहता है पर रोक लगाईUDU,DUD,RLR,LRL,FBF,BFBऔर उनके सभी संयोजनों की तरह वैकल्पिक प्रत्ययों का उपयोग करU2DU,RL'RयाB2FB'।समूह अपनी चाल अक्ष द्वारा चेहरों को क्रमबद्ध करते हैं।
UऔरDएक ही समूह में हैं, क्योंकि दोनों एक ही धुरी पर घूमते हैं। इसलिए एकUचालDचेहरे के टुकड़ों को प्रभावित नहीं करती है , और एकDचालUचेहरे के टुकड़ों को प्रभावित नहीं करती है । इसलिए दो चालों का आदान-प्रदान किया जा सकता है,UDUजैसा ही प्रभाव पड़ता हैUUD, और इसे कम किया जा सकता हैU2D।
चुनौती
एक स्क्रिप्ट या एक फ़ंक्शन लिखें, जो एक यादृच्छिक हाथापाई उत्पन्न करता है। कोई इनपुट नहीं है। स्क्रिप्ट / फ़ंक्शन को एक स्थान से अलग या अलग किए बिना 25 चालों को प्रिंट करना होगा या संवाददाता स्ट्रिंग को वापस करना होगा।
आपके कार्यक्रम को प्रत्येक एकल स्क्रैम्बल बनाने में सक्षम होना चाहिए, जो ऊपर दिए गए नियमों को पूरा करता है। बेशक, यादृच्छिक संख्या जनरेटर सच यादृच्छिक है, और छद्म यादृच्छिक नहीं है।
यह कोड-गोल्फ है। सबसे छोटा कोड ( बाइट्स में गिना गया ) जीतता है।
उदाहरण आउटपुट:
स्क्रिप्ट / फ़ंक्शन को 3 बार कॉल करना कुछ इस तरह प्रिंट / वापस करना चाहिए:
R'B2R2F2R2FB'R2DR2ULFB2RB'U2B'FL'BR'U'RB'
U'DBR'B2U'B'U'RUF'B'RDR2U'B'LR'B'F2D2UF2L'
BR2F'B'R'D'R'U2B'F2D2R'F2D'F'D2R2B'L2R'UB'R2L'D
यदि आप प्रत्येक स्थान पर चालों को अलग करते हैं:
R2 L' F2 U2 D' R2 L2 F L' D2 U R B D' U2 L B2 L U B2 D U2 R' D2 U'
B R D2 F U2 B' R2 F2 B' U' L' R2 B U2 R' D B' F' U2 R' B' L R D2 R2
B2 R2 U D' B R D' R L2 D2 L2 R B2 F U' F2 B2 U' F U' D F R2 U2 B'
ध्यान दें, कि इन सभी आउटपुटों में 25 चालें होती हैं, लेकिन वैकल्पिक प्रत्ययों के कारण इसकी लंबाई अलग-अलग होती है। यह एक अंतरिक्ष मुद्रित करने के लिए अनुमति नहीं है जब या तो 2या 'प्रत्यय के रूप में उपयोग हैं। आप मुद्रित करने के लिए है L2UR2F'R'U2या L2 U R2 F' R' U2। L2U R2F'R'U2अनुमति नहीं है।
L2U R2F'R'U2। Uकोई वैकल्पिक प्रत्यय नहीं है और इसलिए स्थान नहीं होना चाहिए। एक स्थान वैकल्पिक प्रत्यय के लिए एक प्रतिस्थापन नहीं होना चाहिए।
U F2 L D2 R'..., उदाहरण के लिए? इस मामले में, एक अतिरिक्त स्थान नहीं है, जो मुझे लगता है कि आपके नियम के अनुसार ठीक होना चाहिए।
UR 2अनुमति नहीं है? मुझे अनुमति दीU R2जानी चाहिए, मुझे लगता है, क्योंकि चालों के बीच रिक्त स्थान समझ में आता है।