मैं यह सुनता रहता हूं कि बॉक्स के बाहर की सोच लक्ष्य को प्राप्त करने के लायक है, लेकिन अगर मैं इसे सफलतापूर्वक कर रहा हूं तो मैं कैसे बता सकता हूं?
इस दुविधा को हल करने के लिए मैंने पहले ही एक Brainwave-to-ASCII -translator लिखा है जो सिद्धांत रूप में आउटपुट का उत्पादन करना चाहिए
#
+------------+ #
| thinking | #
| | #
+------------+ #
#
या
#
+------+ #
| | thinking #
| | #
| | #
+------+ #
#
जो यह बताना काफी आसान बनाता है कि कोई बॉक्स के बाहर सोच रहा है या नहीं। ( #
आउटपुट का हिस्सा नहीं हैं और नई लाइनों का प्रतिनिधित्व करते हैं।)
हालांकि, बग के कारण कभी-कभी आउटपुट का केवल एक छोटा भाग वापस आ जाता है:
| | #
+---------+ #
thinking #
#
+#
|#
inking |#
#
#
काम
कृपया किसी प्रोग्राम या फ़ंक्शन को लिखकर ब्रेनवेव -टू-एएससीआईआई- ट्रान्सलेटर आउटपुट को स्वचालित रूप से वर्गीकृत करने में मेरी मदद करें, जो एक एएससीआई-रीप्रेंसेशन पढ़ता है और रिटर्न करता thinking
है कि क्या बॉक्स में है, इसके बाहर या यह इनपुट से नहीं बता सकता है।
इनपुट
सूची के रूप में समान-लंबाई के तार का एक सेट या जिसमें newlines युक्त सीमांकित है
- स्ट्रिंग
thinking
या मान्य पूर्व- या उसके प्रत्यय हैं +-|
एक आयताकार बॉक्स या उसके वैध भागों को बनाने वाले पात्र- रिक्त स्थान
- नहीं
#
, जिन्हें केवल इनपुट लाइनों के सिरों को चिह्नित करने की चुनौती में शामिल किया गया है।
उत्पादन
- एक सत्य मूल्य अगर
thinking
बॉक्स के बाहर है - एक मिथ्या मूल्य अगर
thinking
बॉक्स में है - यदि यह बॉक्स में है या नहीं इनपुट से यह निर्धारित नहीं किया जा सकता है कि क्या एक अलग तीसरा शायद मान है
thinking
उदाहरण
Truthy:
#
+------+ #
| | thinking #
| | #
| | #
+------+ #
#
| | #
+---------+ #
thinking #
#
+#
|#
|#
inking |#
thinking #
-------+ #
++ # (thinking is not in the box, so it must be outside)
++ # (this is also the smallest possible box)
+ #
t#
+----+# (The box is not wide enough to contain "thinking")
---# (The box is not high enough to contain "thinking")
---#
स्ट्रिंग इनपुट के रूप में:
" \n +------+ \n | | thinking \n | | \n | | \n +------+ \n "
" | | \n +---------+ \n thinking "
" \n +\n |\n |\ninking |"
"thinking \n-------+ "
" ++ \n ++ "
"+ \n t"
"+----+"
"---\n---"
"g++"
"k\n+"
Falsy:
#
+------------+ #
| thinking | #
| | #
+------------+ #
#
+---------------#
| #
| #
| thinking #
| #
king | #
------+ #
+---#
|thi#
+---#
-#
n#
-#
स्ट्रिंग इनपुट के रूप में:
" \n +------------+ \n | thinking | \n | | \n +------------+ \n "
" +---------------\n | \n | \n | thinking "
" | \nking | \n------+ "
"+---\n|thi\n+---"
"-\nn\n-"
शायद:
thinking#
g|#
think#
-----#
| |# (box large enough to possibly contain the string)
| |#
+--#
| #
# (empty input)
स्ट्रिंग इनपुट के रूप में:
"thinking"
"g|"
"|t"
"-\ni"
"h\n-"
"think\n-----"
"| |\n| |"
" +--\n | "
""
नियम
- यह कोड-गोल्फ है , इसलिए संभव के रूप में कुछ बाइट्स का उपयोग करने का प्रयास करें।
- शायद मूल्य जब तक कि यह truthy / falsy मूल्य से अलग है और सभी शायद-इनपुट के लिए एक ही है के रूप में स्वतंत्र रूप से चुना जा सकता है। यह एक त्रुटि भी हो सकती है।
- आप यह मान सकते हैं कि इनपुट हमेशा मान्य है (जैसे। कोई अन्य वर्ण नहीं है
+-ghiknt|
, एक से अधिक बॉक्स नहीं है, ...)।
+\n+
एक शब्द के लिए बहुत छोटा बॉक्स