[यहाँ क्लिक करें अस्वीकरण यहाँ]


86

Mods पर ध्यान दें, यदि शीर्षक न्याय नहीं करता है, तो इसे जो कुछ भी है, उसे बदल दें, मुझे लगा कि यह मजाकिया था।


आपको इस क्रिसमस के मौसम के लिए लाइट्स को टांगने का काम सौंपा गया है, और आपके परिवार ने फैसला किया है कि इसके लिए मेरी क्रिसमस होना चाहिए, आपको अपने घर पर कम से कम 2 क्रिसमस लाइट्स लटकाने की जरूरत है। तो, आपकी चुनौती है, एक नंबर दिया गया है, आप 1 < nजिस क्रिसमस लाइट्स को लगाने जा रहे हैं, उसकी संबंधित संख्या को निम्न विनिर्देशों के अनुसार लटकाएं ...


यहाँ एक बुनियादी क्रिसमस प्रकाश की संरचना है:

  _?_
 [___]
 /:' \ 
|::   |
\::.  /
 \::./
  '='

केवल अनिश्चित भाग प्रश्न चिह्न है, जहां इस बात पर निर्भर करता है कि श्रृंखला में प्रकाश भूमि कहां है, कनेक्शन बहुत भिन्न होगा।

श्रृंखला में पहली रोशनी के लिए, आपको आउटपुट की आवश्यकता होगी:

    .--._ 
  _(_ 
 [___]
 /:' \ 
|::   |
\::.  /
 \::./
  '='

श्रृंखला में अंतिम प्रकाश के लिए, आपको आउटपुट की आवश्यकता होगी:

_.--. 
    _)_
   [___]
   /:' \ 
  |::   |
  \::.  /
   \::./
    '='

और बीच में सभी रोशनी के लिए:

_.--.--._
   _Y_ 
  [___]
  /:' \ 
 |::   |
 \::.  /
  \::./
   '='

उदाहरण:

एन = 2 :

    .--.__.--.    
  _(_        _)_  
 [___]      [___] 
 /:' \      /:' \ 
|::   |    |::   |
\::.  /    \::.  /
 \::./      \::./ 
  '='        '='  

एन = 6 :

    .--.__.--.--.__.--.--.__.--.--.__.--.--.__.--.
  _(_       _Y_      _Y_      _Y_      _Y_       _)_
 [___]     [___]    [___]    [___]    [___]     [___]
 /:' \     /:' \    /:' \    /:' \    /:' \     /:' \
|::   |   |::   |  |::   |  |::   |  |::   |   |::   |
\::.  /   \::.  /  \::.  /  \::.  /  \::.  /   \::.  /
 \::./     \::./    \::./    \::./    \::./     \::./
  '='       '='      '='      '='      '='       '='

श्रेय

ASCII-Art से लिया गया था: http://www.chris.com/ascii/index.php?art=holiday/chestmas/other

इसे "jgs" नामक एक उपयोगकर्ता द्वारा विकसित किया गया था, जो उस साइट पर लगभग 40% सामग्री के लिए जिम्मेदार है।


नियम

  • ट्रेलिंग रिक्त स्थान ठीक हैं, एक अनुगामी न्यूलाइन के साथ।
  • बाकी श्रृंखला से पहले और आखिरी बल्ब के बीच 1 और स्थान है।
  • आप इनपुट के रूप में केवल 1 पूर्णांक ले सकते हैं, और आउटपुट एक स्ट्रिंग होना चाहिए, कोई सरणियाँ नहीं।
  • आपके कार्यक्रम में 2 से कम मान के लिए अपरिभाषित कार्य हो सकते हैं।

यह , सबसे कम बाइट-काउंट जीतता है।


यहां Sanbox पोस्ट लिंक।


क्या होगा अगर तार वर्णों के सरणियों के पर्यायवाची हैं?
Οवस

36
यह मूल क्रिसमस प्रकाश ग्रेनेड के समान हास्यास्पद रूप से दिखता है :)
nicael

18
@nicael वैकल्पिक चुनौती विवरण: सांता इस साल बुरे बच्चों पर टूट रहा है, और प्रत्येक शरारती काम के लिए बच्चे को एक जीवित हैंड ग्रेनेड प्राप्त होगा। उपहार के विचारशील प्रदाता के रूप में वह है, सांता ने हथगोले को एक साथ बांध दिया है ताकि दुनिया के बुरे बच्चे उन्हें दुर्घटना से खो न दें!
मैजिक ऑक्टोपस Urn

@MagicOctopusUrn उह, बाईं और दाईं ओर 3 रिक्त स्थान और अन्यथा 2 स्थान? काश स्पेस रिस्पॉन्सिबल होता। यह एक बदसूरत ग्रेनेड बेल्ट है।
polkovnikov.ph

1
@ polkovnikov.ph यह या तो वह था, या कोष्ठक के ऊपर होने वाले डॉट्स (जो कि अजीब लग रहे हैं), या कोष्ठक कोष्ठक नहीं हैं। IMO यह सबसे अच्छी लग रही है (हालांकि सबसे गोल्फ नहीं) दृष्टिकोण।
दिजिमा

जवाबों:


35

SOGL V0.12 , 73 71 70 66 बाइट्स

.”L7:±¹‘Ο4↕ooā.⁾ Y*¾(){"}^ņF⁵),WοΓy⅜¬κ8ΕL▓‚7m~Ε⅝Γ‘7n┼F (=f⁄2=+⁽{@┼

यह कोशिश करो!

-4 बाइट्स (YYY)जैसे कि चारकोल जवाब की तरह एक स्ट्रिंग पर लूप करके

अगर 2 को संभालने की जरूरत नहीं है तो 63 बाइट्स काम करेंगे: /


9
[दिमाग उड़ा।]
रॉबर्ट हार्वे

2
यह बिल्कुल हास्यास्पद है। (खासकर यदि यह एक फोन पर किया गया था।) +1
जो

10
मुझे 90% यकीन है कि मैंने इस सटीक कोड को पहले देखा है, जब से मैंने कुछ असंबद्ध मेमोरी प्रिंट किया था।
निक हार्टले

यह 113 बाइट्स, 70 चार्ट है।
पॉल्कोवनिकोव .ph

@ polkovnikov.ph यदि आप save SOGL codepage encoded fileबटन पर क्लिक करते हैं , तो यह आपको एक 70 बाइट फ़ाइल देता है, जिसे आप वहां भी लोड कर सकते हैं (यद्यपि ब्राउज़ बटन अनजाने में दूर है, इसे ठीक करना)। SOGL ऐसा करने के लिए एक कस्टम कोडपेज का उपयोग करता है। (कोडपेज उत्तर के हेडर में लिंक किया गया है)
dzaima

26

पायथन 3, 200 195 191 190 186 बाइट्स

d,*l=" _%c_     , [___]   , /:' \   ,|::   |  ,\::.  /  , \::./   ,  '='    ".split(',')
x=int(input())-2
print(' '*3,-~x*'.--.__.--'+'.\n',d%'(',d%'Y'*x,d%')')
for s in l:print(s,s*x,s)


रॉड से डाइटन -4 बाइट्स से -1 बाइट

स्टड पर इनपुट लेता है।

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

स्पष्टीकरण:

d,*l=" _%c_     , [___]   , /:' \   ,|::   |  ,\::.  /  , \::./   ,  '='    ".split(',')
# d is the second row, without the (, Y, or ) to connect the light to the strand
# l is the third through eighth rows in a list
x=int(input())-2
# x is the number of lights in the middle of the strand
print(' '*3,-~x*'.--.__.--'+'.\n',d%'(',d%'Y'*x,d%')')
# print x+1 wire segments and a trailing dot, starting four spaces over
# on the next line, print the connectors, _(_, then _Y_ * x, then _)_
for s in l:print(s,s*x,s)
# on the Nth line, print the Nth light row, a space,
#     x * the Nth light row, a space, and the Nth light row

अतिरिक्त उत्सव संस्करण!


for s in l:print(s,s*x,s)एक बाइट को बचाने के लिए अंतिम पंक्ति को बदलना ।
डायलन

स्पष्टीकरण के लिए धन्यवाद, पायथन मुझे विचित्र लगता है ... lol
ArtisticPhoenix

1
@ArtisticPhoenix विडंबना यह है कि जब गोल्फ नहीं हो रहा है, तो पायथन सबसे कम दिखने वाली विचित्र भाषाओं में से एक है।
jpmc26

18

पायथ , 113 107 बाइट्स

+"    ."*=tQ"--.__.--."++"  _(_ "j"_Y_"*Q]*6d" _)_"jms[d;jd*Q]*2;;d)c5" /:' \ |::   |\::.  / \::./   '='  "

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

बिल्कुल गोल्फ संस्करण नहीं ...


11
गोल्फ नहीं है? शायद। सही बात? हाँ। FGITW? निश्चित रूप से।
मैजिक ऑक्टोपस Urn

हाँ, विशेष रूप से एक अनावश्यक अनुगामी चरित्र के साथ, गोल्फ नहीं। : पी
एरिक आउटोलॉफ़र

15

जावास्क्रिप्ट (ईएस 6), 180 बाइट्स

n=>`    .${'--.__.--.'.repeat(n-1)}
`+`  _Y_  
 [___] 
 /:' \\ 
|::   |
\\::.  /
 \\::./ 
  '='  `.replace(/.+/g,(r,p)=>`${p?r:'  _(_  '}  ${` ${r} `.repeat(n-2)}  ${p?r:'  _)_'}`)

परीक्षा

var f=
n=>`    .${'--.__.--.'.repeat(n-1)}
`+`  _Y_  
 [___] 
 /:' \\ 
|::   |
\\::.  /
 \\::./ 
  '='  `.replace(/.+/g,(r,p)=>`${p?r:'  _(_  '}  ${` ${r} `.repeat(n-2)}  ${p?r:'  _)_'}`)
  
function update()
{
  var n=+I.value
  P.textContent=f(n)
}  

update()
<input id=I type=number value=2 min=2 oninput='update()'>
<pre id=P></pre>


13

जावास्क्रिप्ट (ईएस 6), 204 201 196 194 192 बाइट्स

N=>`     ${(r=x=>x.repeat(N-1))(`.--.__.--`)}.
   _(_    ${N--,r(`   _Y_   `)}    _)_
`+` [___] 
 /:' \\ 
|::   |
\\::.  /
 \\::./ 
  '='  `.split`
`.map(x=>`${x=` ${x} `} ${r(x)} `+x).join`
`


1
आप की जगह कुछ वर्ण बचा सकता है .--._${(r=x=>x.repeat(N-2))(`_.--.--._`)}_.--.के साथ${(r=x=>x.repeat(N-1))(`.--.__.--`)}.
Kuilin ली

@KuilinLi मुझे Nपहली कॉल के बाद वेतन वृद्धि करनी होगी r, लेकिन यह ठीक काम करता है।
darrylyeo

13

चारकोल , 78 74 बाइट्स

M⁴→×….--.__⁹⊖θ.⸿F⪫()×Y⁻貫M⁼ι)→P“ ▷υ ρ1↗N⁷Σ⭆ C✂⪪⟲⦃¬≡↘↨H℅⌕Σêλ⍘”  _ι_M⁺⁴⁼ι(→

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

M⁴→×….--.__⁹⊖θ.⸿

तार को ले जाकर वायरिंग को प्रिंट करें .--.__, इसे 9 की लंबाई पर मोल्डिंग करें, फिर प्रत्येक जोड़ के लिए एक बार दोहराते हुए, .बल्बों के लिए अगली पंक्ति के शुरू होने से पहले एक फाइनल के साथ समाप्त करें ।

F⪫()×Y⁻貫

कनेक्टर्स की एक स्ट्रिंग पर लूप: (और )अंत में, और Yबीच में।

M⁼ι)→

यदि यह अंतिम बल्ब है तो सही एक वर्ण को स्थानांतरित करें।

P“ ▷υ ρ1↗N⁷Σ⭆ C✂⪪⟲⦃¬≡↘↨H℅⌕Σêλ⍘”

कर्सर को स्थानांतरित किए बिना बल्ब के शरीर को प्रिंट करें।

  _ι_

कनेक्टर सहित बल्ब की टोपी प्रिंट करें।

M⁺⁴⁼ι(→

अगले बल्ब की शुरुआत में जाएं (एक अतिरिक्त चरित्र यदि यह पहला बल्ब है)।


यह 74 वर्ण है, बाइट नहीं।
polkovnikov.ph

@ polkovnikov.ph चारकोल एक कस्टम कोडपेज का उपयोग करता है , जो प्रत्येक चरित्र को एक बाइट के रूप में गिनने की अनुमति देता है।
दाजिमा

13

एक्सेल VBA, 224 207 205 बाइट्स

बेनामी VBE तत्काल विंडो फ़ंक्शन जो रेंज से इनपुट लेता है [A1]और VBE तत्काल विंडो में आउटपुट करता है।

बल्बों की रेखा को रेखा से ऊपर, नीचे से दाईं ओर प्रिंट करता है

?Spc(4)[Rept(".--.__.--",A1-1)]".":?"  _(_ "[Rept("      _Y_",A1-2)]"       _)_":For i=0To 5:b=Split(" [___]   1 /:' \   1|::   |  1\::.  /  1 \::./   1  '='    ",1)(i):[B1]=b:?b" "[Rept(B1,A1-2)]" "b:Next

नमूना I / O

[A1]=7 ''  Input to worksheet, may also be done manually
?Spc(4)[Rept(".--.__.--",A1-1)]".":?"  _(_ "[Rept("      _Y_",A1-2)]"       _)_":For i=0To 5:b=Split(" [___]   1 /:' \   1|::   |  1\::.  /  1 \::./   1  '='    ",1)(i):[B1]=b:?b" "[Rept(B1,A1-2)]" "b:Next
    .--.__.--.--.__.--.--.__.--.--.__.--.--.__.--.--.__.--.
  _(_       _Y_      _Y_      _Y_      _Y_      _Y_       _)_
 [___]     [___]    [___]    [___]    [___]    [___]     [___]   
 /:' \     /:' \    /:' \    /:' \    /:' \    /:' \     /:' \   
|::   |   |::   |  |::   |  |::   |  |::   |  |::   |   |::   |  
\::.  /   \::.  /  \::.  /  \::.  /  \::.  /  \::.  /   \::.  /  
 \::./     \::./    \::./    \::./    \::./    \::./     \::./   
  '='       '='      '='      '='      '='      '='       '='    

-17 बाइट्स @ YowE3k को धन्यवाद

अस्थायी चर के अलावा -2 बाइट्स b


2
ऊह मुझे पेपरवर्क-सॉफ्टवेयर मैक्रो भाषाओं में उत्तर पसंद हैं! दूसरी ओर मैं वीबीए से हार गया। +1
--वस

1
(आपने मुझे साइन अप करने के लिए मिला है, बस इसलिए मैं इस टिप्पणी को छोड़ सकता हूं!) : [Rept(B1,A1-2)]लूप की शुरुआत से पहले का उपयोग नहीं किया जाता है।
YowE3K

@ YowE3K - आप सही हैं! पकड़ने के लिए धन्यवाद कि - इसे ठीक कर दिया गया है
टेलर स्कॉट

10

सी,  279   278  272  262  259 बाइट्स

छह बाइट बचाने के लिए @NieDzejkob को धन्यवाद!

#define P;printf(
i,j;f(n){char*S=" [___]   \0 /:' \\   \0|::   |  \0\\::.  /  \0 \\::./   \0  \'=\'    \0"P"    ");for(i=n--;--i P".--.__.--"))P".\n  _(_ ");for(;++i<n P"      _Y_"))P"       _)_\n%s ",S);for(;*S P"%10s\n%s ",S,S+10),S+=10)for(i=n;--i P S));}

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

unrolled:

#define P;printf(

i, j;

f(n)
{
    char*S = " [___]   \0 /:' \\   \0|::   |  \0\\::.  /  \0 \\::./   \0  \'=\'    \0"
    P"    ");

    for (i=n--; --i P".--.__.--"))
    P".\n  _(_ ");

    for (; ++i<n P"      _Y_"))
    P"       _)_\n%s ",S);

    for (; *S P"%10s\n%s ", S, S+10), S+=10)
        for(i=n; --i P S));
}

1
सी, अद्भुत! (:
सिल्वरवुल्फ


9

PHP, 276 , 307 , 303 , 301 , 293 , 283 , 280 , 278 बाइट्स

function g($n){$a=["     .--._".r("_.--.--._",$n)."_.--.",r("_(_")." ".r(_Y_,$n)." ".r("_)_")];foreach(explode(9,"[___]9/:' \9|::   |9\::.  /9\::./9'='")as$b)$a[]=r($b)." ".r($b,$n)." ".r($b);return join("\n",$a);}function r($s,$n=3){return str_repeat(str_pad($s,9," ",2),$n-2);}

परीक्षण के लिए पठनीय संस्करण:

function g($n){
    $a=[
         "     .--._".r("_.--.--._",$n)."_.--.",
         r("_(_")." ".r(_Y_,$n)." ".r("_)_")
    ];

    foreach(explode(9, "[___]9/:' \9|::   |9\::.  /9\::./9'='") as$b)
         $a[]=r($b)." ".r($b,$n)." ".r($b);

    return join("\n",$a);
}
function r($s,$n=3){
    return str_repeat(str_pad($s,9," ",2),$n-2);
}

यहां से छोटा संस्करण देखें

यहाँ पठनीय संस्करण की जाँच करें

अपडेट करें

इसे एक समारोह में लपेटकर,



2
सीमांकक के रूप में उपयोग करने का पुराना जावास्क्रिप्ट टिप PHP में भी ठीक काम करता है, बस आपको \ विभाजक अंक से पहले बचना होगा, इसलिए केवल 1 char को बचाएगा। आप अंतरिक्ष वर्णों को उसी बड़े स्ट्रिंग का हिस्सा बनाकर एक और 2 वर्णों को बचा सकते हैं, जिसमें विस्तार के रूप में बीच में अभिव्यक्ति है $a[]=$r($b)." {$r($b,$n)} ".$r($b);:।
मैनटवर्क

@manatwork - टिप अपडेट के लिए धन्यवाद
ArtisticPhoenix

1
@ मैनटवर्क - अगर मैं 9सीमांकक के रूप में उपयोग करता हूं, तो बचने की जरूरत नहीं है, शायद यह अन्य संख्याओं के साथ काम करता है0
आर्टिस्टिकपोहेनिक्स

1
और एक अन्य यह है कि आप $r()लैम्बडा फ़ंक्शन को एक नियमित के रूप में परिभाषित कर सकते हैं function r()(उसी स्थान पर हो सकता है, फ़ंक्शन में फ़ंक्शन संभव है)। आपको स्ट्रिंग पार्सिंग को ठीक करने की आवश्यकता है: " {r("")} "काम नहीं करेगा। एक और -7 बाइट्स;)
7ochem

8

जावा, 310 307 300 275 बाइट्स

इसे लैंबडा एक्सप्रेशन में परिवर्तित करने के लिए डेवलपिंगड्यूपर के लिए धन्यवाद

i->{int j=1;String o="     .";for(;j++<i;)o+="--.__.--.";o+="\n   _(_    ";for(;--j>2;)o+="   _Y_   ";o+="    _)_";String[]a={"  [___]  ","  /:' \\  "," |::   | "," \\::.  / ","  \\::./  ","   '='   "};for(String b:a)for(j=0;j++<i;)o+=j==1?"\n"+b+" ":j==i?" "+b:b;return o;};

विस्तारित:

i->
{
    int j=1;
    String o="     .";
    for(;j++<i;)
        o+="--.__.--.";
    o+="\n   _(_    ";
    for(;--j>2;)
        o+="   _Y_   ";
    o+="    _)_";
    String[]a={"  [___]  ","  /:' \\  "," |::   | "," \\::.  / ","  \\::./  ","   '='   "};
    for(String b:a)
        for(j=0;j++<i;)
            o+=j==1?"\n"+b+" ":j==i?" "+b:b;
    return o;
};

स्ट्रिंग्स को गुणा करने के छोटे तरीकों पर गौर करें, और पाया कि धाराएँ आश्चर्यजनक रूप से अधिक क्रिया हैं

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


2
String o="";+ o+=" .";=String o=" .";
मैनटवर्क

@manatwork धन्यवाद, याद आया कि
phflack

2
@ एफफ्लैक मैं इसे 290 तक नीचे ले आया यदि आप एक लैम्डा एक्सप्रेशन का
डेवलपिंगडॉलर

1
@ एफफ्लैक इसके अलावा, ओपी ने कहा कि इसे स्ट्रिंग को वापस करने की ज़रूरत है, इसे कंसोल पर प्रिंट न करें, इसलिए आप इसे नीचे कर 279 तक
विकासशील 13

1
@ डीवलपिंगडायपर कूल, मुझे j=#लूप्स के लिए बाहर निकलने का एक रास्ता भी मिल गया
फाफलैक


3

पायथन 2 (PyPy) , 365 316 315 251 245 बाइट्स

-21 FlipTack के लिए धन्यवाद

-43 ओव्स के लिए धन्यवाद

-6 श्री Xcoder के लिए धन्यवाद

v,p=' \n'
a,l,n=".--._",["[___]"," /:' \ ","|::   |","\::.  /"," \::./ ","  '='  "],input()-2
e,b=v*5+"_)_",a[::-1]
r=v*4,a,(b[:4]+a)*n,b,p+"  _(_   ",(v*4+"_Y_  ")*n,e+p+v
for i in l:b=4-2*(i in l[1:]);r+=i+v*-~b,(i+v*b)*n,v+i+p
print''.join(r)

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




मुझे लगता है कि आप आखिरी सुझाव में संपादन के बाद बायटेकाउंट अपडेट करना भूल गए।
नीदेज्ज्कोब

1

कोटलिन , 261 बाइट्स

{val c="  [___]\n/:' \\\n |::|\n \\::./\n  \\::./\n   '='"
(0..7).map{i->print("     .--._\n   _(_\n$c".lines()[i].padEnd(10))
(0..L-3).map{print("_.--.--._\n   _Y_\n$c".lines()[i].padEnd(9))}
if(i>1)print(' ')
print("_.--.\n    _)_\n$c".lines()[i])
println()}}

सजा हुआ

{
    val c = "  [___]\n  /:' \\\n |::   |\n \\::.  /\n  \\::./\n   '='"

    (0..7).map {i->
        print("     .--._\n   _(_\n$c".lines()[i].padEnd(10))
        (0..L - 3).map {
            print("_.--.--._\n   _Y_\n$c".lines()[i].padEnd(9))
        }
        if (i > 1) print(' ')
        print("_.--.\n    _)_\n$c".lines()[i])
        println()
    }
}

परीक्षा

fun f(L: Int)
{val c="  [___]\n/:' \\\n |::|\n \\::./\n  \\::./\n   '='"
(0..7).map{i->print("     .--._\n   _(_\n$c".lines()[i].padEnd(10))
(0..L-3).map{print("_.--.--._\n   _Y_\n$c".lines()[i].padEnd(9))}
if(i>1)print(' ')
print("_.--.\n    _)_\n$c".lines()[i])
println()}}

fun main(args: Array<String>) {
    f(6)
}

TIO

TryItOnline


1

गूगल शीट्स, 190 बाइट्स

बेनामी वर्कशीट फ़ंक्शन जो रेंज से इनपुट लेती है A1और आउटपुट सेल को बुलाती है

="    "&Rept(".--.__.--",A1-1)&".
  _(_    "&Rept("   _Y_   ",A1-2)&"    _)_"&RegexReplace("
 [___]   
 /:' \   
|::   |  
\::.  /  
 \::./   
  '='    
","
(.*)","
$1 "&Rept("$1",A1-2)&" $1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.