ASCII बोरोमीन रिंग्स


24

Borromean छल्ले तीन हलकों का एक जिज्ञासु सेट, ऐसा है कि उनमें से किसी एक को हटाने के अन्य दो को अनलिंक जाएगा जुड़ा हुआ हैं:

यहाँ छवि विवरण दर्ज करें

आप अपने लिए एक युगल रबर बैंड और एक बांधने की मशीन अंगूठी के साथ एक सेट बना सकते हैं । अधिक रबर बैंड के साथ, किसी भी ब्रूनेशियन लिंक को बनाना आसान है ।

एक कार्यक्रम या फ़ंक्शन लिखें जो बोरोमियन रिंगों के इस असिसी-आर्ट प्रतिनिधित्व को आउटपुट (प्रिंट या रिटर्न) करता है:

    +-----+
    |     |
+-----+   |
|   | |   |
| +-|---+ |
| | | | | |
| | +-|---+
| |   | |
+-|---+ |
  |     |
  +-----+

लाइनों में अनुगामी स्थान हो सकते हैं और अनुगामी न्यूलाइन हो सकती है।

बाइट्स में सबसे छोटा कोड जीतता है।


2
मुझे कहना है कि यह एक कठिन चुनौती है क्योंकि अपेक्षित आउटपुट कितना सरल है
बीटा डेके

3
मैं थोड़ा निराश हूं। सोचा कि चुनौती एक पूर्णांक आकार और उस आकार के आउटपुट रिंग लेने की होगी।
ब्लैकलाइट शाइनिंग

हाँ, मुझे लगा कि ऐसा भी है (प्रोग्राम इनपुट के रूप में int लेता है और फिर कई घटकों के साथ ब्रूनियन लिंक को खींचता है, लेकिन यह अद्वितीय नहीं है, शायद कई क्रॉसिंग?)। इस तरह के कार्यक्रम को वास्तव में खोज करना होगा (या कम से कम परीक्षण और त्रुटि - क्या ये छल्ले इंटरलॉक करते हैं और यदि मैं एक को हटाता हूं, तो नि: शुल्क
चलाएं

जवाबों:


7

CJam, 53 51 50 49 बाइट्स

पुराना आधार रूपांतरण ...

"FÓîÞ¤ÛY­ËB[¢O²êÍÓ
}²|äG"299b4b"+ -|"f=B/N*

सभी अक्षर विस्तारित ASCII रेंज (ASCII कोड 1 से 255) में अच्छी तरह से हैं, इसलिए वर्णों की संख्या == बाइट्स की संख्या।

इसे यहाँ ऑनलाइन आज़माएँ और मूल कोड यहाँ प्राप्त करें


बस जिज्ञासु, आपके देखने में न्यूलाइन कहां है?
माल्टसेन

@ मैं यह नहीं है। B/N*11 वर्णों से विभाजित और जुड़ने पर नई रेखा बनती है
ऑप्टिमाइज़र

वह कोयल है।
माल्टसेन

6

पायथ - 51 बाइट्स

मुझे यकीन है कि किसी ने इसे जल्दी से हरा दिया है, लेकिन बस एक आधार संपीड़न जवाब cuz मैं आलसी महसूस कर रहा हूं। मैं जल्द ही एक गंभीर जवाब लिखने की कोशिश करूंगा।

s@L"
 +-|"jC" zB²;¶Ê ¿ïÁ»#-ÌClHõy%|ap"5

इसे यहाँ ऑनलाइन प्रयास करें

s              Reduce on string concatenation
 @L            Map second arg to index first arg
  "..."        String of all chars (Pyth allows literal newlines)
  j            Base conversion to list
   C           Base conversion 256 -> 10
    "..."      Base 256 string
   5           To Base 5

4

पायथ, 49 बाइट्स

jbc11s@L"+ -|"jC"Tª]UʨWÕÝ_K¨}ÝÝ÷K¨Ý]Òê]UÕ*¡"4

प्रदर्शन।

यह बेस 4 एन्कोडिंग का उपयोग करता है, और स्ट्रिंग को ग्यारहवें हिस्से में काटता है, फिर उन्हें नए सिरे से जोड़ता है।


3

रूबी, 110

-2.upto(8){|i|s=" "*(i%6)+"+-----+"*(1-i%2)+" "*9
6.times{|j|"@d me?K[RR@"[i+2].ord>>j&1>0&&s[j*2]=?|}
puts s}

सीधे आधार रूपांतरण से कुछ अलग।

Ungolfed:

-2.upto(8){|i|                                           #for each line
  s=" "*(i%6)+"+-----+"*(1-i%2)+" "*9                    #load s with "+-----+" (if required!) padded appropriately with leading spaces and with nine trailing spaces.   
  6.times{|j|"@d me?K[RR@"[i+2].ord>>j&1>0&&s[j*2]=?|}   #replace characters with | as necessary, according to the 6-bit number encoded by each character in the magic string.
  puts s}                                                #print the line.

3

रूबी, 117 बाइट्स

जीत नहीं, लेकिन मुझे लगा कि यह एक सुंदर दृष्टिकोण था:

puts'    --
    |     |
--  |
|   | |   |
| -||
| | | | | |
| | -|
| |   | |
-||
  |     |
  --'.gsub /-./,'+\0---+ '

2

ब्रेनफक, 361 बाइट्स

यहाँ एक छोटा सा ब्रेनफैक कार्यक्रम है, केवल चार द्वारा छपाई का चार्ट।

+++++++++[->>>>++++++++++++++<+++++<+++++<++++<]>----....>--.>.....>-->++++++++++<<<.>>>.<<<<....>>>.<<<.....>>>.>.<<<.>.....<.<...>>>.>.<.<<<...>>>.<<<.>>>.<<<...>>>.>.<.<<<.>.>.>.<...<.<.>>>.>.<.<<<.>>>.<<<.>>>.<<<.>>>.<<<.>>>.<<<.>>>.>.<.<<<.>>>.<<<.>.>.>.<...<.>>>.<.<<<.>>>.<<<...>>>.<<<.>>>.>.<<<.>.>.<...<.<.>>>.>.<<<<..>>>.<<<.....>>>.>.<<<<..>.>.....<.

1

स्टैक , 109 चार्ट

&iiiqi{1" "}{211}{c"| "}{fcc}{o"+-|"}{p"+--"}{r"---+"}{ec;}22pr;22c22epr21ec2f2ecor1effcefor;f2ceor1e2c22e2pr

उत्पादन:

Executing D:\codegolf\Staq borromean rings.txt

    +-----+
    |     |
+-----+   |
|   | |   |
| +-|---+ |
| | | | | |
| | +-|---+
| |   | |
+-|---+ |
  |     |
  +-----+

Execution complete.
>

0

पायथन 3, 139 बाइट्स

यह वास्तव में ऐसा करने के बिना मैं इसे सीधे मुद्रण के लिए प्राप्त कर सकता हूं (जो कि 134 बाइट्स होगा) .... मुझे यकीन नहीं है कि इसे कैसे छोटा किया जाए।

a='+-----+'
b='+-|---+'
c=' '*4
d='| '
e=c+d
print(c+a,e*2,a+e[1:],"|   | "*2,d+b+" |",d*6,d+d+b,"| |   "*2,b+" |",e[2:]+e,"  "+a,sep='\n')
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.