आपका काम चालों का एक यादृच्छिक अनुक्रम बनाना है, जिसका उपयोग एक रूबिक क्यूब को घसीटने के लिए किया जा सकता है। इस तरह की हाथापाई ठीक 25 चालों से बनी होती है। प्रत्येक चाल में अक्षर के UDRLFB
वैकल्पिक रूप से एक प्रत्यय होता है '2
।
इस नोटेशन को सिंगमास्टर नोटेशन कहा जाता है। UDRLFB
6 चेहरों में से एक का प्रतिनिधित्व करता है और वैकल्पिक प्रत्यय '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
जानी चाहिए, मुझे लगता है, क्योंकि चालों के बीच रिक्त स्थान समझ में आता है।