मूल रूप से किसी भी कोड को मैन्युअल रूप से लिखने के लिए बहुत थकाऊ है। आपकी चुनौती एएससीआईआई पाठ को क्यूबली स्रोत कोड में अनुवाद करना है।
Cubically
यह क्यूबिकली बस एक त्वरित रन-डाउन है; भंडार एक और अधिक पूरा गाइड और विवरण है।
मूल रूप से एक एसोलैंग है जिसे मैंने कुछ समय पहले लिखा था, जिसे उपयोग करने के लिए दर्दनाक बनाया गया था। इसमें मेमोरी के दो टुकड़े होते हैं, एक 3x3x3 रूबिक क्यूब और एक रजिस्टर जिसे "नोटपैड" कहा जाता है।
स्मृति
आंतरिक रुबिक का घन इस तरह से आरंभ किया गया है:
000
000 top face
000
111222333444 left, front, right, and back faces, respectively
111222333444
111222333444
555
555 down face
555
दाहिने चेहरे पर 90 ° घूमने के बाद, मेमोरी क्यूब इस तरह दिखेगा:
002
002
002
111225333044
111225333044
111225333044
554
554
554
आदेश
एक गैर-पूर्णांक वर्ण डिफ़ॉल्ट कमांड सेट करता है। डिफ़ॉल्ट पूर्ण कमांड को एक बार फिर सेट करने से पहले प्रत्येक पूर्णांक के लिए, कमांड उस पूर्णांक के साथ किया जाता है। उदाहरण के लिए, 5 के साथ x524y312
कमांड करेगा x
, फिर 2 के साथ, फिर 4 के साथ, फिर y
3 के साथ कमांड करेगा , फिर 1 के साथ, फिर 2 के साथ कमांड करेगा ।
पूर्णांक जो कमांड का उपयोग करते हैं वे फेस इंडेक्स का प्रतिनिधित्व करते हैं। तो यूपी (0-अनुक्रमित) चेहरे पर x0
प्रदर्शन करेंगे x
। LEFT (1-अनुक्रमित) चेहरे पर x1
प्रदर्शन करेगा x
, और इसी तरह।
किसी भी कमांड 6
को प्रदर्शन करने से नोटपैड मान पर उस कमांड का प्रदर्शन होगा। 6 से अधिक किसी भी पूर्णांक के साथ किसी भी कमांड को निष्पादित करने में त्रुटि होगी।
यहाँ कुछ उदाहरण आदेश दिए गए हैं:
R1
- राइट फेस क्लॉकवाइज 90 ° मोड़ें ताकि आंतरिक क्यूब ऊपर के दूसरे उदाहरण की तरह दिखाई देगाR11
- समान रूप से दो बार राइट फेस क्लॉकवाइज 90 ° मोड़ेंR2
+0
- नोटपैड में यूपी चेहरे के सभी मूल्यों को जोड़ें+000
- यूपी फेस के सभी मूल्यों को तीन बार नोटपैड में जोड़ें@6
- एक चरित्र के रूप में noxistent 6-अनुक्रमित चेहरे (मेमोरी) को प्रिंट करें%4
- BACK चेहरे पर सभी मानों के योग को पूर्णांक के रूप में प्रिंट करें
कमांड और सिंटैक्स की एक पूरी सूची रिपॉजिटरी में उपलब्ध है ।
चुनौती
आप ASCII टेक्स्ट को इनपुट के रूप में लेंगे और आउटपुट के रूप में एक क्यूबिक प्रोग्राम को प्रिंट करेंगे।
उदाहरण ( यहां और यहां से चुराए गए ):
Input -> Output
Hello, World! -> +53@6+1F2L2+0@6L2F2U3R3F1L1+2@66L3F3R1U1B3+0@6:4U1R1+00@6-000@6*0-4+000@6-00@6+2-000000@6-5+4000@6-00@6/0+00@6:0+0/0+00@6
1$2$3$4$5$6$7$8$9$10$ -> B1+2/2%6@4+00/0%6@4+00/1%6@4+21/1%6@4+30/0%6@4+22/1%6@4+22/1%6@4+40/1%6@4+52/1%6@4+42/1%6@4
नियम
- आपके कार्यक्रम में १०० टेस्टकेस के अनुवाद वाले शब्दकोश नहीं हो सकते हैं।
- आपका कार्यक्रम 180 सेकंड से कम समय में समाप्त होना चाहिए (कोई ब्रूट-फोर्स प्रोग्राम जो सप्ताह लगते हैं)।
- आपके कार्यक्रम को मान्य रूप से घन कोड का उत्पादन करना चाहिए जो 180 सेकंड से कम समय में समाप्त हो जाता है।
- जब तक आप परीक्षण ड्राइवर के साथ गड़बड़ नहीं करना चाहते, आपका कार्यक्रम मानक इनपुट के माध्यम से इनपुट लेगा।
- आपके प्रोग्राम को क्यूबिक कोड को आउटपुट करना चाहिए जो रन करते समय आपके प्रोग्राम के इनपुट के अलावा कुछ भी नहीं पैदा करता है। ಠ_ಠ
स्कोरिंग
आप अपने प्रोग्राम को 100 छद्म आयामी pseudorandom लंबाई के तार के साथ परीक्षण करेंगे। (एक बैश स्क्रिप्ट प्रदान की जाती है जो आपके लिए यह करेगी।) यहां बताया गया है कि आप कैसे स्कोर करेंगे:
- आउटपुट प्रोग्राम की लंबाई ओ हो ।
- इनपुट स्ट्रिंग की लंबाई l होने दें ।
- एक चर आर ओ / एल का परिणाम है ।
- सभी आर का औसत ज्ञात करें : (आर 1 + आर 2 + आर ... + आर 100 ) / 100 ।
इस स्क्रिप्ट के साथ परीक्षण करें। आपको निर्देशानुसार इसे संशोधित करना होगा। ध्यान दें कि प्रोग्राम यह जांच नहीं करता है कि आउटपुट वैध रूप से क्यूबिक कोड है या नहीं। यदि आपको स्क्रिप्ट काम नहीं कर रही है, तो मैं मदद कर सकता हूं। मुझे क्यूबिक चैट रूम में पिंग करें ।
@6
- एक चरित्र के रूप में नॉन-सेंस 6-इंडेक्सड फेस (नोटपैड) का योग" अधिक सटीक होगा? है %4
यह भी एक योग? कर रहे हैं +
आदेशों राशि चेहरा फिर ... सभी मूल्यों या करने के लिए है कि जोड़ सकता हूँ?
@6
/ %6
सीधे नोटपैड मान को वर्ण / पूर्णांक के रूप में प्रिंट करता है। @x
/ %x
(जहां x कोई मौजूदा चेहरा है) x
-indexed चेहरे पर सभी मान जोड़ता है और योग को वर्ण / पूर्णांक के रूप में प्रिंट करता है। +
निर्दिष्ट चेहरे पर सभी मानों को रजिस्टर में जोड़ता है।