रोबोक्रिटर्स ( व्युत्पत्ति ) एक नई गूढ़ प्रोग्रामिंग भाषा है (इसे खोजने के लिए परेशान न करें, मैं अभी इसका आविष्कार करता हूं)। यह ब्रेनफॉक (बीएफ) का एक प्रकार है , जो सामान्य ऑपरेटर प्रतिस्थापन योजनाओं की तुलना में थोड़ा अधिक जटिल है। RoboCritters में हर कार्यक्रम पाठ का एक आयताकार ग्रिड है जिसमें केवल सात अक्षर होते हैं , साथ ही ग्रिड को आकार देने के लिए नए अंक भी होते हैं ।. []/\|
उदाहरण RoboCritters कार्यक्रम:
|\/||./|[]||
[..][][] |
|/\|[..][..]
[..] \/\/
बीएफ में एक रोबोक्रिटर्स प्रोग्राम का अनुवाद करने के लिए, सामान्य रीडिंग ऑर्डर में ग्रिड में प्रत्येक गैर-न्यूलाइन चरित्र को देखें (बाएं से दाएं फिर ऊपर से नीचे), जैसे |\/||./|[]||[..][][] ||/\|[..][..][..] \/\/
।
यदि वर्तमान वर्ण से दाएं और नीचे फैले ग्रिड का 4 × 2 खंड ठीक नीचे सूचीबद्ध आठ रोबोट क्रिटर्स में से एक से मेल खाता है , तो संबंधित बीएफ कमांड को जोड़ें। ( ><+-.,[]
) (शुरू में खाली) बीएफ प्रोग्राम को जोड़ें।
यदि 4 × 2 ग्रिड सेक्शन किसी भी रोबोट क्रिटर्स से मेल नहीं खाता या सीमा से बाहर नहीं जाता है , तो बीएफ प्रोग्राम में कुछ भी नहीं जोड़ा जाता है।
जॉयबोट,
>
कमांड:[..] \][/
Calmbot,
<
कमांड:[..] /][\
स्क्वीडबोट,
+
कमांड:[..] //\\
स्पाइडरबोट,
-
कमांड:[..] ||||
बनीबोट,
.
कमांड:[][] [..]
टूथबोट,
,
कमांड:[..] |/\|
फॉक्सबोट,
[
कमांड:|\/| [..]
बैटबोट,
]
कमांड:[..] \/\/
इसलिए, उदाहरण कार्यक्रम को पढ़ना
|\/||./|[]||
[..][][] |
|/\|[..][..]
[..] \/\/
हम देख सकते हैं कि हम पहले एक फॉक्सबॉट (स्तंभ 1, पंक्ति 1 पर), फिर एक टूथबोट (सी 1, आर 2), फिर एक बनीबोट (सी 5, आर 2), और अंत में एक बैटबोट (सी 9, आर 3) का सामना करते हैं। यह BF प्रोग्राम से मेल खाती है[,.]
।
ध्यान दें कि फॉक्सबोट और टूथबोट ओवरलैप होते हैं। यह जानबूझकर है; जब वे ओवरलैप करते हैं तो रोबोट क्रिटर्स की कोई अलग व्याख्या नहीं की जाती है ।
चुनौती
सबसे कम संभव प्रोग्राम लिखें जो एक रोबोक्रिटर्स प्रोग्राम में लेता है और इसके बीएफ समकक्ष को आउटपुट करता है। आपको BF चलाने या यह जाँचने की आवश्यकता नहीं है कि यह मान्य है, केवल RoboCritters कोड को BF कोड में अनुवाद करें।
विवरण
सभी इनपुट RoboCritters कार्यक्रम मान्य होंगे, यह है कि वे पाठ का एक आयताकार ब्लॉक होगा जिसमें केवल सात वर्ण होंगे
. []/\|
, साथ ही इसे आकार देने के लिए नए अंक। Newlines किसी भी सुविधाजनक सामान्य प्रतिनिधित्व में हो सकता है । आप वैकल्पिक रूप से मान सकते हैं कि कार्यक्रमों में एक एकल अनुगामी न्यूलाइन है।आपको RoboCritters प्रोग्राम का समर्थन करना चाहिए जो कि 4 × 2 से छोटा है, जिसमें 0 × 0 खाली (या सिंगल न्यूलाइन) प्रोग्राम भी शामिल है। ये सभी खाली बीएफ प्रोग्राम (खाली स्ट्रिंग) के अनुरूप हैं।
आउटपुट BF प्रोग्राम केवल एक लाइन स्ट्रिंग होना चाहिए जिसमें केवल आठ BF कमांड अक्षर हों
><+-.,[]
। वैकल्पिक रूप से एक एकल अनुगामी न्यूलाइन हो सकती है।किसी भी सामान्य तरीके से इनपुट लें (stdin / text file / कमांड लाइन) और आउटपुट को stdout या आपकी भाषा के निकटतम विकल्प के लिए।
प्रोग्राम के बजाय आप एक फ़ंक्शन लिख सकते हैं जो रोबोक्रिटर्स प्रोग्राम को एक स्ट्रिंग और प्रिंट के रूप में लेता है या बीएफ प्रोग्राम स्ट्रिंग लौटाता है।
उदाहरण
इनपुट: (ऊपर दिया गया उदाहरण)
|\/|[][] [..][][] |/\|[..] \/\/
आउटपुट:
[,.]
इनपुट: (सभी रोबोट क्रिटर्स का परीक्षण)
[..][[[[[..]]. ]|\/| \][/[..]//\\[..][..] [..]/][\[][]|/\|[..] ||||/\| [..]| |\/\/
आउटपुट:
>+[<,-.]
इनपुट:
[..] [..] [..] [..] [..] [..] [..] [..] |\/| [..] [..] [..] [..] [..] |\/| [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] [..] |\/| [..] [..] [..] [..] [..] [..] [..] [][] [..] [..] [..] [..] [][] [..] [..] [..] [..] [..] [..] [..] [][] [][] [..] [..] [..] [][] [..] [..] [][] [..] [..] [][] [..] [][] [..] [..] [..] [][] [..] [..] [..] [..] [..] [..] [][] [..] [..] [..] [..] [..] [..] [..] [..] [][] [..] [..] [..] [][] [..] [..] [..] [][] //\\ //\\ //\\ //\\ //\\ //\\ //\\ //\\ [..] \][/ //\\ //\\ //\\ //\\ [..] \][/ //\\ //\\ \][/ //\\ //\\ //\\ \][/ //\\ //\\ //\\ \][/ //\\ /][\ /][\ /][\ /][\ |||| \/\/ \][/ //\\ \][/ //\\ \][/ |||| \][/ \][/ //\\ [..] /][\ \/\/ /][\ |||| \/\/ \][/ \][/ [..] \][/ |||| |||| |||| [..] //\\ //\\ //\\ //\\ //\\ //\\ //\\ [..] [..] //\\ //\\ //\\ [..] \][/ \][/ [..] /][\ |||| [..] /][\ [..] //\\ //\\ //\\ [..] |||| |||| |||| |||| |||| |||| [..] |||| |||| |||| |||| |||| |||| |||| |||| [..] \][/ \][/ //\\ [..] \][/ //\\ //\\ [..]
आउटपुट: ( BF हैलो वर्ल्ड प्रोग्राम )
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
इनपुट: (कोई रोबोट critters मौजूद नहीं)
/\\\[]. ]..[..] \\//||\
आउटपुट: (खाली स्ट्रिंग)
स्कोरिंग
बाइट्स में सबसे कम सबमिशन जीतता है। ( हैंडी बाइट काउंटर। ) टाईब्रेकर सर्वाधिक मतदान वाला पद है।