मुझे एक वर्णमाला का पेड़ बनाओ


14

पहचान

अधिकांश फोंट में अपरकेस वर्णमाला के सभी अक्षरों के अलावा BDOएकल लाइनें होती हैं, जो चरित्र के बाउंडिंग रेक्टिंग के चार कोनों में से कुछ को छूती हैं ACEFGHIJKLMNPQRSTUVWXYZ:।

उदाहरण के लिए, एक A"स्पर्श" के दो पैर चरित्र के निचले बाएँ और नीचे दाएं कोने। इसी तरह, Cइसके ऊपरी और निचले दाएं कोनों को छूता है (यह थोड़ा घुमावदार है लेकिन यह काफी करीब है)। Lकेवल एकल पंक्तियों के साथ यह शीर्ष बाएं और नीचे दाएं कोनों को छूता है। के निचले बाएँ कोने में Lएक शीर्ष है, एक पंक्ति का अंत नहीं है।

यहां स्टैक एक्सचेंज फ़ॉन्ट I (और उम्मीद है कि आप) के अनुसार कौन से वर्णों को छूते हैं, इसकी एक तालिका है। 1ऊपरी बाएँ के 2लिए है, ऊपरी दाएँ के लिए है, 3बाएँ बाएँ, 4दाएँ दाएँ।

A: 3 4
C: 2 4
E: 2 4
F: 2 3
G: 2
H: 1 2 3 4
I: 1 2 3 4
J: 1 3
K: 1 2 3 4
L: 1 4
M: 3 4
N: 2 3
P: 3
Q: 4
R: 3 4
S: 2 3
T: 1 2
U: 1 2
V: 1 2
W: 1 2
X: 1 2 3 4
Y: 1 2
Z: 1 4

सेट अप

इन कोने को छूने वाली लाइनों की तरह प्रेटेंड उस कोने की दिशा में विस्तारित होता है जिसे वे स्पर्श करते हैं ताकि ग्रिड पर इन पात्रों की व्यवस्था "कनेक्ट" हो सके।

उदाहरण के लिए, सभी वर्ण

 A
C X

जुड़े हुए हैं क्योंकि नीचे की बाईं Aऔर के ऊपरी दाएँ Cकनेक्ट, और के निचले दाएं Aऔर ऊपर के बाएँ Xकनेक्ट।

तथापि,

CAX

कोई कनेक्शन नहीं है क्योंकि कनेक्शन केवल एक वर्ण से दूसरे में तिरछे होते हैं

चुनौती

सबसे छोटे प्रोग्राम को (बाइट्स में) लिखें जो कि ACEFGHIJKLMNPQRSTUVWXYZऊपर दिए गए नियमों के अनुसार एक बड़े पूर्ण रूप से जुड़े हुए पेड़ के सभी पात्रों को आउटपुट करता है । प्रत्येक चरित्र को एक बार बिल्कुल दिखाई देना चाहिए। खाली जगह के लिए जगह का उपयोग करें।

उदाहरण

इस 23-अक्षर के पेड़ में सब कुछ ऊपर परिभाषित विकर्ण कनेक्शन के माध्यम से किसी और चीज़ से पहुँचा जा सकता है:

  Q
 A J   R
C U   S Y
 I M N
E H X
 F L T
G   Z K P
     V W

टिप्पणियाँ

  • आप अपना समाधान हार्डकोड कर सकते हैं।
  • आपके आउटपुट में केवल ACEFGHIJKLMNPQRSTUVWXYZस्थान, रिक्त स्थान और newlines होना चाहिए । BDOउपयोग नहीं किया जाएगा।
  • जब तक सभी कनेक्शन ठीक से तैनात नहीं हो जाते हैं, लीडिंग / ट्रेलिंग स्पेस ठीक हैं।
  • आउटपुट ग्रिड 30 से 30 वर्णों (newlines और रिक्त स्थान सहित) से बड़ा नहीं होना चाहिए।
  • केवल कोने कनेक्शन पर विचार किया जाता है। नीचे का हिस्सा Yकिसी चीज से नहीं जुड़ता। आपको उपरोक्त तालिका से कोने कनेक्शन का उपयोग करना चाहिए।
  • सभी कनेक्ट करने योग्य कोनों को किसी चीज़ से कनेक्ट करने की आवश्यकता नहीं है। कनेक्ट करने योग्य और गैर-कनेक्ट करने योग्य कोने एक-दूसरे को सीमा दे सकते हैं।
  • स्टडआउट के लिए आउटपुट। कोई इनपुट नहीं है।
  • पीटर टेलर ने स्लैश के साथ बनाया एक कनेक्टिविटी ग्राफ शामिल करना एक सहायक स्पर्श है, लेकिन इसकी आवश्यकता नहीं है।

अद्यतन:
githubhagocyte ने Github पर एक वर्णमाला ट्री वैधता जाँचकर्ता बना दिया है ।


आप अपना समाधान हार्डकोड कर सकते हैं?
edc65

2
@ edc65 आप अपने समाधान को हार्डकोड कर सकते हैं।
केल्विन के शौक

7
अजीब बात है कि कैसे उन 2 वाक्यांशों में केवल 1 अलग चरित्र है: पी
तेउन ऑर्क

1
@githubphagocyte, यह एक उत्तर के रूप में प्रश्न के परिशिष्ट के रूप में बेहतर होगा, यह देखते हुए कि यह एक उत्तर नहीं है।
पीटर टेलर

1
अच्छा गोल्फ, @ केल्विन शौकीन। यह एक के लिए जवाब देखने के लिए बहुत मज़ा है।
जॉर्डन

जवाबों:


1

पायथ , ३२

jd"QAPMFRLZ\nUINKSHXJ\n\0GTCVEWY

आउटपुट:

Q A P M F R L Z 
 U I N K S H X J 
  G T C V E W Y

कनेक्शन, @ githubphagocyte के चेकर के लिए धन्यवाद:

Q   A   P   M   F   R   L   Z   
 \ / \ /   / \ /   / \   \   \  
  U   I   N   K   S   H   X   J   
     / \ /   / \ /   / \ / \ /    
    G   T   C   V   E   W   Y 

@ जीआरसी की अशक्त बाइट चाल और पाइथ की अत्यंत छोटी वाक्य रचना को जोड़ती है। इसके नरक के लिए अपना खुद का ग्रिड बनाया।

स्पष्टीकरण:

jअजगर का तार जुड़ गया है। dअंतरिक्ष है। \0नल बाइट के लिए भागने का क्रम है। यह मुद्रित होने पर एक एनओपी है, इसलिए तीसरी पंक्ति में सामने दो स्थान हैं। इसके अलावा, ध्यान दें कि स्ट्रिंग्स को Pyth में EOL- टर्मिनेट किया जा सकता है, साथ ही उद्धरण-समाप्त भी किया जा सकता है।



11

अजगर, ४ ९

print' '.join('  MQRCNAF\n XZHLKSIP\n\0GJWVUYET')

उदाहरण:

>>> print' '.join('  MQRCNAF\n XZHLKSIP\n\0GJWVUYET')
    M Q R C N A F 
   X Z H L K S I P 
  G J W V U Y E T

मुझे लगता है कि यह अब ठीक से जुड़ता है, लेकिन मैं फिर से कुछ याद कर सकता हूं।


F4से जुड़ा हुआ है G1, जो अमान्य है
Tymric

@ टिम्मी लेकिन F2 A3 से जुड़ा है। यह सब मुझसे जुड़ा हुआ दिखता है।
केल्विन के शौक

@ केल्विन के शौक मुझे लगता है कि मैंने आवश्यकताओं को गलत समझा। क्या यह आसन्न कोनों से जुड़ा हुआ है जो जुड़ा नहीं है?
तैमूर

2
@ टिम्मी ज़रूर कोनों के उन जोड़े को सिर्फ जुड़ा हुआ नहीं माना जाता है, लेकिन दो अक्षर दूसरे तरीके से जुड़े हो सकते हैं।
केल्विन के शौक

9

मारबेलस 164 158 143

प्रयुक्त bmarks 'पेड़ के बाद से यह लगभग पूरी तरह से के लिए अनुकूलित Marbelous । इस मामले में कोड सभी वर्णों (रिक्त स्थान और newlines सहित) के लिए ascci कोड है जो बाएं से दाएं, रिक्त स्थान द्वारा सीमांकित है।

43 20 46 20 50 20 4D 20 51 20 52 20 45 20 41 14 20 58 20 48 20 4e 20 4C 20 4B 20 5A 20 49 20 53 14 47 20 59 20 56 20 20 20 55 20 4A 20 54 20 57

आउटपुट:

 C F P M Q R E A 
  X H N L K Z I S 
 G Y V   U J T W

एक बेहतर मारबेलस दृष्टिकोण 135 129

यह प्रत्येक लाइन के पहले और बाद में एक अतिरिक्त स्थान के साथ एक ही पेड़ को आउटपुट करता है, यह शाब्दिक रूप से एक सबरूटीन को खिलाकर काम करता है जो शाब्दिक रूप से प्रिंट करने से पहले एक स्थान प्रिंट करता है। और सिर्फ एक जगह को प्रिंट करना अगर शाब्दिक स्थान है (20 HEX)

57
54
4A
55
20
56
59
47
14
53
49
5A
4B
4C
4E
48
58
20
14
41
45
52
51
4D
50
46
43
Sp
Sp:
20 I0
.. =V

यह जवाब 96 तक पहुंच जाएगा, जब कोशिकाओं के बीच रिक्त स्थान की आवश्यकता अब मारबेलस स्रोत कोड के लिए नहीं होगी, जो आज बाद में होगा।
overactor

1
भाषा या भाषा की विशेषताओं का उपयोग करना जो प्रश्न को स्थगित करते हैं धोखा माना जाता है।
पीटर टेलर

4
@PeterTaylor अब इस उत्तर के लिए केवल उन विशेषताओं का उपयोग किया जाता है जो प्रश्न पूछे जाने पर कार्यान्वित किए गए थे।
ओवरएक्टर

7

ब्रेनएफ * ck 669

इस एक को गिगल्स के लिए बनाया। उदाहरण के समान सटीक आउटपुट।
बाद में एक और समाधान प्रदान करेगा। Lua में ऐसा करने के लिए एक चतुर तरीका नहीं सोच सकता है, इसलिए मैं बस इस एक से चिपका रहूंगा :)

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

उत्पादन

  Q
 A J   R
C U   S Y
 I M N
E H X
 F L T
G   Z K P
     V W

2
कोई फर्क नहीं पड़ता कि कोडगॉल्फ चुनौती का कितना पागल है, लगभग हमेशा एक दिमाग का जवाब है। यह प्यार होगा +1
छत्र

@AndoDaan नहीं, यह नहीं होगा। हालांकि मैंने उसका उपयोग नहीं किया। मैंने अपना खुद का ब्रेनफ * ck बनाया जैसे मैं हमेशा करता हूं। मैंने उस बहुत का उपयोग किया और अधिकांश तरकीबें सीखीं जिनका उपयोग मैं हमेशा बीएफ लिखते समय करता हूं, इसलिए अगर यह सिम्बलर लगे तो मुझे आश्चर्य नहीं होगा।
त्युन प्रोक

समरूप नहीं, समरूप। लंबाई में दोनों 669 बाइट्स। दोनों चरित्र विधि द्वारा एक ही चरित्र का उपयोग कर रहे हैं (सभी में कोई अनुकूलन नहीं), और दोनों समान भी हैं जहां सभी प्लासी, माइन और अन्य चीज़ों के प्रतीक चलते हैं।
अंदौना 14

2
एक संयोग तो होना ही चाहिए। मैं चुनौती का मज़ा लेने के लिए भाग लेता हूँ और मुझे बीएफ बनाने का मज़ा नहीं दिखता। एकमात्र तरीका यह भी हो सकता है कि थोड़ा सा मज़ा तब भी हो सकता है जब आपने खुद जनरेटर लिखा हो।
त्यूण प्रैंक

6

PHP 46

यह प्रोग्रामिंग के बजाय पहेली को सुलझाने की तरह अधिक था, इसलिए मेरा जवाब कोड के बजाय पहेली समाधान की तरह अधिक है। हालाँकि यह एक वैध PHP कार्यक्रम है, इसलिए मैं इसे प्रस्तुत कर रहा हूँ।

C A Q S R P M J
 X Z I F K N H
G T U V W Y E L

पर्ल में समान अपडेट करें। लंबाई अभी भी 46 है:

print"CAQSRPMJ
 XZIFKNH
GTUVWYEL"=~s/\S/$& /rg

4

HTML, 55

कोड

<pre>C F P M Q R E A
 X H N L K Z I S
G Y V   U J T W

उत्पादन:

C F P M Q R E A
 X H N L K Z I S
G Y V   U J T W


2

STATA 63

संपादित करें: अब मेरा अपना समाधान है। सभी अक्षर होने चाहिए।

di 'C F P M Q R E A' di ' X H N L K Z I S' di 'G Y V   U J T W'

 C F P M Q R E A 
  X H N L K Z I S 
 G Y V   U J T W

1

जावास्क्रिप्ट 83

मैं आपके समाधान को हार्डकोड करने के साथ शुरू करूँगा

console.log('  Q\n A J   R\nC U   S Y\n I M N\nE H X\n F L T\nG   Z K P\n     V W')

alertconsole.log
ज़ेनिले

2
@MarkGabriel मैं इसे कुछ बेहतर तरीके से छोटा बनाना चाहूंगा। एशियाटिक आर्ट प्रदर्शित करने के लिए अलर्ट का सही फ़ॉन्ट नहीं है।
edc65

1
समझा। अलर्ट के फ़ॉर्मेटिंग के अलग होने के बारे में भूल गए। :)
ज़ेनिले

1

PHP, 69

<?php echo preg_replace("/(\w)/",'\1 ',"CAQSRPMJ
 XZIFKNH
GTUVWYEL");

देता है

C A Q S R P M J 
 X Z I F K N H 
G T U V W Y E L

आपके आउटपुट में कोई विकर्ण कनेक्शन नहीं है
edc65

@ मार्टिनबटनर - धन्यवाद, इसे ठीक करने के लिए मुझे एक बाइट का खर्च करना पड़ा।
विजय

इस (और कई अन्य) प्रतिक्रिया के साथ समस्या यह है कि आउटपुट कोड से कम है (कोर 1024 php देखें)
edc65

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