एक टूर्नामेंट कोष्ठक का निर्माण


13

निम्नलिखित ड्राइंग नियमों के आधार पर, गैर-रिक्त स्ट्रिंग्स की एक इनपुट सूची को देखते हुए, एक टूर्नामेंट के ASCII कला प्रतिनिधित्व का उत्पादन:

  • तारों की संख्या मात्रा की गारंटी है 2,4,8,16,etc.
  • पहले दो तार एक दूसरे को खेलते हैं, और अगले दो एक दूसरे को खेलते हैं, और इसी तरह। यह पहला राउंड है।
  • प्रत्येक गेम के लिए, समान संभावना वाले यादृच्छिक रूप से विजेता चुनें।
  • अगले दौर के लिए, पहले गेम का विजेता दूसरे गेम का विजेता खेलता है, तीसरे गेम का विजेता चौथे गेम का विजेता खेलता है, और इसी तरह। बाद के दौर पैटर्न का पालन करते हैं।
  • अंततः एक समग्र विजेता होता है।
  • सुंदर आउटपुट (आवश्यक) के लिए स्ट्रिंग्स को पूर्ववत् करना चाहिए और एक अंडरस्कोर के साथ जोड़ा जाना चाहिए _
  • कोष्ठक को उचित रूप से पंक्तिबद्ध करने के लिए, प्रत्येक प्रविष्टि को _उस दौर के लिए समान लंबाई वाली होना चाहिए।
  • आप चुन सकते हैं कि क्या पैडिंग प्रीपेड है या संलग्न है, जब तक यह सुसंगत है।
  • इसके बजाय, आप प्रति-दौर के आधार पर सभी स्ट्रिंग को एक ही लंबाई के होने के लिए प्री-पैड चुन सकते हैं। आपके कोड के लिए जो भी गोल्फ खिलाड़ी है।

आगे के नियम

  • लीडिंग या अनुगामी newlines या व्हाट्सएप सभी वैकल्पिक हैं, जब तक कि वर्ण खुद को सही ढंग से पंक्तिबद्ध करते हैं।
  • या तो एक पूर्ण कार्यक्रम या एक समारोह स्वीकार्य हैं। यदि कोई फ़ंक्शन है, तो आप इसे प्रिंट करने के बजाय आउटपुट वापस कर सकते हैं।
  • यदि संभव हो, तो कृपया ऑनलाइन परीक्षण वातावरण का लिंक शामिल करें ताकि अन्य लोग आपके कोड को आज़मा सकें!
  • मानक खामियों को मना किया जाता है।
  • यह इसलिए सभी सामान्य गोल्फिंग नियम लागू होते हैं, और सबसे छोटा कोड (बाइट्स में) जीतता है।

उदाहरण

शहरों के साथ उदाहरण ['Boston', 'New York', 'Charlotte', 'Atlanta', 'St. Paul', 'Chicago', 'Los Angeles', 'Phoenix']:

_Boston______
             \_New York____
_New York____/             \
                            \_New York_
_Charlotte___               /          \
             \_Charlotte___/            \
_Atlanta_____/                           \
                                          \_St. Paul_
_St. Paul____                             /
             \_St. Paul____              /
_Chicago_____/             \            /
                            \_St. Paul_/
_Los Angeles_               /
             \_Los Angeles_/
_Phoenix_____/

उदाहरण के साथ ['Lions', 'Tigers', 'Bears', 'Oh My']:

_Lions__
        \_Tigers_
_Tigers_/        \
                  \_Tigers_
_Bears__          /
        \_Bears__/
_Oh My__/


क्या विजेता का चयन मेरसेन ट्विस्टर यादृच्छिक होना चाहिए, या क्या यह छद्म यादृच्छिक हो सकता है?
ज़च गेट्स

@ZachGates तब तक जब तक दोनों टीमों के बीच यह 50-50 का मौका है, "आप जिस भी तरीके का उपयोग करना चाहते हैं वह ठीक है।
AdmBorkBork

जवाबों:


6

चारकोल , 92 79 बाइट्स

A¹θWS⊞υ⪫__ιWυ«A⌈EυLκεA⁺θθδFυ«P×_εPκMδ↓»AE✂υ¹Lυ²⎇‽²κ§υ⁺λλυMε→Fυ«Mδ↑↗θ←↖θ→»Mθ↘Aδθ

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। इनपुट के अंत को चिह्नित करने के लिए एक रिक्त रेखा की आवश्यकता है। स्पष्टीकरण:

A¹θ

चर को आरम्भ करें q। यह zig-zags का आकार धारण करता है यानी पंक्तियों के बीच आधा अंतर।

WS⊞υ⪫__ι

सरणी में नॉनब्लांक इनपुट लाइनें पढ़ें u। लाइनों को स्वचालित रूप से चारों ओर से घेर लिया जाता है _क्योंकि उन्हें पढ़ा जाता है, हालांकि वे अभी तक गद्देदार नहीं हैं।

Wυ«

लूप जबकि अभी भी तार बाकी हैं।

A⌈EυLκε

में सबसे बड़ी स्ट्रिंग की चौड़ाई की गणना करें e

A⁺θθδ

में पंक्तियों के बीच अंतर की गणना करें d

Fυ«P×_εPκMδ↓»

प्रत्येक टीम के लिए, पेडिंग प्रिंट करें, टीम प्रिंट करें, और फिर अगली टीम में जाएं।

AE✂υ¹Lυ²⎇‽²κ§υ⁺λλυ

हर दूसरी टीम के लिए, बेतरतीब ढंग से उस टीम या पिछली टीम के बीच चयन करें। (ध्यान दें कि यदि केवल एक ही टीम बची है तो यह एक खाली सूची तैयार करती है।)

Mε→Fυ«Mδ↑↗θ←↖θ→»Mθ↘

यदि अभी भी टीमें बाकी हैं, तो जोड़े में शामिल होने वाले ज़िगज़ैग को ड्रा करें।

Aδθ

हर बार ज़िगज़ैग की लंबाई को दोगुना करें।


क्या आपको लगता है कि कोई भी मामला होगा जिसमें एक सूची इनपुट ऑपरेटर सहायक होगा?
केवल

@ ASCII- केवल खैर, मैं इसे ASCII वेन आरेख प्रश्न के लिए इस्तेमाल कर सकता था ...
नील

: | क्या आपको लगता है कि यह लागू करने लायक है?
केवल

@ ASCII- केवल मुझे लगता है कि आप ▷vSउस रास्ते के लिए कुछ कर सकते हैं या कर सकते हैं ।
आउटगॉल्फ

2

पायथन 2 , 379 364 बाइट्स

exec r"""c=input();from random import*;R,L,d=range,len,0;u,s="_ ";r=[[""]*-~L(c)@R(2*L(c)-1)]
while c:
 W=2+max(map(L,c));j=1<<d;J=j/2;D=d+d;d+=1
 @r:l[D]=s*W;l[D-1]=s*J
 @R(L(c)):
	h=l*2*j+j-1;r[h][D]=(u+c[l]+u*W)[:W]
	@R(h-J,h+J):r[-~l][~-D]=("/\\"[l<h]+s*abs(h-l-(l<h))).rjust(J)
 c=[choice(l)@zip(c[::2],c[1::2])]
@r:print"".join(l)""".replace("@","for l in ")

इसे ऑनलाइन आज़माएं!


आप अपने दो-स्तरीय इंडेंट को एक विलक्षण टैब से बदल सकते हैं और तीन बाइट्स बचा सकते हैं।
जोनाथन फ्रीच


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.