फाल्कन हैवी स्टेज


43

प्रतिस्थापन के बिना चार बाइट्स का एक सेट चुनें (यानी कोई बाइट दोहराया नहीं), और जरूरी नहीं कि किसी विशेष क्रम में, निम्नलिखित चार सेटों में से किसी एक से:

  1. किसी एक एकल-बाइट एन्कोडिंग के वर्ण
  2. 00-FF रेंज में यूनिकोड वर्ण
  3. The128–127 की सीमा में हस्ताक्षरित दशमलव पूर्णांक
  4. 0255 रेंज में अहस्ताक्षरित दशमलव पूर्णांक

आपके द्वारा चुने गए चार मान (कृपया बताएं कि वे कौन से हैं) मान्य इनपुट होंगे। आपको प्रत्येक मान को ASCII कलाकृतियों में से एक के साथ जोड़ना होगा।

आपके चार वैध इनपुट्स में से एक को देखते हुए, संबंधित ASCII कला के साथ प्रतिक्रिया दें (किसी भी तरह से, यहां तक ​​कि तार की सूची)। सभी पक्षों पर अतिरिक्त सफेद-स्थान की अनुमति है, जब तक कि छवि एक सन्निहित 2 डी क्षेत्र में होती है।

पहला बाइट:

     /\
    /  \
   |    |
   |    |
   |    |
   |____|
    \__/
    |  |
    |  |
    |  |
    |  |
 /\ |  | /\
/  \|  |/  \
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
|  ||  ||  |
AAAAAAAAAAAA

दूसरा बाइट:

  /\
 /  \
|    |
|    |
|    |
|____|
 \__/
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 |  |
 AAAA

तीसरा बाइट:

  /\
 /  \
|    |
|    |
|    |
|____|
 \__/
 |  |
 |  |
 |  |
 |__|
  /\

चौथा बाइट:

 db
_/\_
\__/
|  |
|  |
|  |
|__|
 /\

इस ASCII कला Kolmogorov जटिलता चुनौती के बारे में नया क्या है?

  1. वैध इनपुट का चयन करने की क्षमता चुनौती के लिए एक नया पहलू प्रस्तुत करती है। इनपुट स्पष्ट रूप से पूरे परिणाम को एनकोड करने के लिए सीमित हैं, लेकिन ध्यान आकर्षित करने के लिए पर्याप्त जानकारी ले सकते हैं।

  2. कई संभावित आउटपुट बहुत सारी संरचना साझा करते हैं, इसलिए कोड या उप-छवियों का पुन: उपयोग प्रत्येक छवि के भीतर और छवियों के बीच दोनों में संभव है।

  3. पर्याप्त दोहराव है कि यहां तक ​​कि ऐसी भाषाएं जो चुनौतियों के प्रति अच्छी तरह से तैयार नहीं हैं जैसे कि हार्ड कोडिंग स्ट्रिंग्स के बजाय बड़े पैमाने पर चालाक कोड का उपयोग करने में सक्षम होने का एक उचित मौका है।


2
db एक एस्टन मार्टिन की तरह लगता है! AFAIK यह एक टेस्ला रोडस्टर है।
लेवल रिवर सेंट

1
@LevelRiverSt बॉवी, ब्राउन नहीं!
23

क्या अग्रणी / अनुगामी व्हाट्सएप की अनुमति है, विशेष रूप से बाईं ओर?
लेवल रिवर सेंट

@LevelRiverSt धन्यवाद। मैं इसे लिखना भूल गया, हालांकि मैंने इसके बारे में सोचा था।
Admm

1
क्या यह सच में एनीमेशन है ?
FantaC

जवाबों:


41

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

RegPack'ed। इनपुट के रूप में 0 ... 3 की अपेक्षा है।

n=>[...'BigFu!#?%$Rocket'].reduce((s,c)=>(x=s.split(c)).join(x.pop()),`oF#$!
FRFRFRF|??|$i$t$t$t$t%# t #
!t!BBB
uuceeeeeee%c%|?|
o#, db
_#_
iggg
|?|%#g|o|e%t%t%tkgttgttcu,o#%!
RRR|??|%ieF R|oo|
$
oo%
 ?__#/\\!/o\\uAAAAFo g
ti\\?/Bkkk`).split`,`[n]

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


16
BigFu!#?%$Rocket? लेकिन यह सिर्फ फाल्कन हेवी है!
प्रवेश

16
@ Adám यह सही है। लेकिन BFR.reduce() == FalconHeavy: पी
अरनौलद

यह जीनियस है। एक सेकंड के लिए मैं इंतजार कर रहा था, उसके लिए एक जावास्क्रिप्ट बेसिन क्या है ?! फिर मैं अपने होश में आया ... +1!
रॉडोलफिटो

हमेशा की तरह प्रभावशाली।
वीजुन झोउ

"FRFRFRF" = "Fu!#?%$RocketFu!#?%$RocketFu!#?%$RocketFu!#"सही? मुझे यह जवाब कुछ ज्यादा ही पसंद है।
मैजिक ऑक्टोपस Urn

13

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

NθF⁼³θ«PAA↑↑¹⁸↗²‖MM⁴±χ»¿θ«↙²↓⁴M↗__¶\_¶»↓d/_¶ _\↓×⁴∨›²θ⁶¿‹¹θAA↑¶/_‖M

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

Nθ

नंबर इनपुट करें।

F⁼³θ«PAA↑↑¹⁸↗²‖MM⁴±χ»

यदि यह 3 है, तो आधा बूस्टर ड्रा करें, फिर इसे मिरर करें, फिर रॉकेट की नोक पर जाएं।

¿θ«↙²↓⁴M↗__¶\_¶»

यदि यह 0 नहीं है, तो सामने वाले ईंधन टैंक के बाएं आधे हिस्से को खींचें।

↓d/_¶ _\

लेकिन अगर यह 3 है, तो नाक शंकु के बाएं आधे हिस्से को खींचें।

↓×⁴∨›²θ⁶

रॉकेट के बाईं ओर ड्रा करें।

¿‹¹θAA↑¶/_‖M

रॉकेट का उपयुक्त आधार बनाएं और फिर खत्म करने के लिए दर्पण।


क्या आपने Charcoalसिर्फ इस प्रतियोगिता के लिए बनाया?
19

@nielsbot चारकोल 7 महीने पुराना है (कमिट लॉग देखें)।
फेयरफॉक्स

मैं मज़ाक कर रहा था। लेकिन मुझे लगता है कि यह सवाल उठाता है: यदि आप समस्या को हल करने के लिए भाषा बनाते हैं तो क्या यह गोल्फिंग है? सीमा कहां है?
नील्सबॉट

1
@nielsbot मुझे लगता है कि मानक खामियों में से एक के रूप में गिना जाता है ।
नील

7

क्लीन , 292 278 273 271 262 261 बाइट्स

-5 बाइट्स Adám के लिए धन्यवाद

import StdEnv,Text
e=[k,k,k,"|__|",m]
l=repeatn
o="\\__/"
n="/  \\"
m="/\\"
u="|    |"
s="AAAA"
k="|  |"
?z=[m,n,u,u,u,"|____|",o:z]

\i=[cjustify 12[c\\c<-:q]\\q<-[?[k,k,k,k,m+" "+k+" "+m,n+k+n,k+k+k:l 18(k+k+k)]++[s+s+s],?(l 24k++[s]),?e,["db","_/\\_",o:e]]!!i]

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

एक मेमने का कार्य, ओपी में सूचीबद्ध क्रम में छवियों के Intमूल्यों 0..3को मैप करता है ।



@ Adám धन्यवाद! मैं इसे लागू करने में सक्षम था, लेकिन मैंने इसे केवल तब देखा जब मैंने इसे आगे छोटा किया - फिर भी बाइट्स बचाता है :)
aturous

उह, दो स्निपेट क्यों हैं?
आउटगॉल्फ

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

5

पायथन 2 , 292 290 284 282 281 बाइट्स

i,j,d,e,x,y=input()," "," /\\ ","/  \\","|  |","\__/"
f=i<1
l,m,n,p,q,s=3*f*j,j*(i<3),d*f,e*f,x*f,j*(i>0)
print"\n".join(([l+j+d,l+j+e]+[l+"|    |"]*3+[l+"|____|",l+j+y],[" db\n_/\_",y])[i>2]+([l+j+x]*4+[n+s+x+n,p+s+x+p]+[q+s+x+q]*18+[s+"A"*(4,12)[f]],[m+x]*3+[m+"|__|",m+d])[i>1])

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

एक पूर्णांक 0 से 3 को इनपुट के रूप में लेता है और प्रत्येक आउटपुट के निर्माण के लिए सूची अनुक्रमण (1 या 0) का उपयोग करता है।

-2 कोष्ठक की एक अनावश्यक जोड़ी के लिए।

-6 एक चर असाइनमेंट को हटाकर जो केवल एक बार उपयोग किया गया था।

एक और एकल उपयोग चर के लिए -2।

-1 @ रोड से एक टिप के साथ


1
n, pऔर qचर भी अनावश्यक हैं (-2 प्रत्येक बाइट्स)। " db"और बाद में "_/\_"साथ जुड़ जाएंगे "\n", आप दोनों को " db\n_/\_"एक और बाइट बचाने के लिए बदल सकते हैं । आप (शायद) +yप्रत्येक तत्व से, सूची से बाहर (और कास्ट को भी हटा सकते हैं) कुछ इस तरह से स्थानांतरित कर सकते हैं(...)[i>2]+["\__/"]
रॉड

@ नोड \ n टिप के लिए धन्यवाद। मुझे वह याद आया। हालांकि n, p और q के बारे में निश्चित नहीं है। बूस्टर की जरूरत है या नहीं, यह परिभाषित करने के लिए वे मुख्य रॉकेट के प्रत्येक पक्ष में दो बार उपयोग किए जाते हैं। एक मामले में Simailarly y को इससे पहले न्यूलाइन की जरूरत है और दूसरे मामले में कुछ अन्य पात्रों की। ईमानदार होने के लिए एक पूर्ण पुनर्लेखन से शायद फायदा हो सकता है। इससे कोई भी विचार करने के लिए स्वतंत्र महसूस करें और अपना उत्तर पोस्ट करने के लिए इनका उपयोग करें।
ElPedro

5

रूबी , 234 212 205 बाइट्स

->n{y=*"| "
h=%w{/ /\ }+["|  "]*3+%w{|__ \\_}+y*3
t=%w{|_ /}
[h+["| ","/\\ | ","/  \\| ",*["|  || "]*18,?A*6],h+y*21<<?A*2,h+t,%w{d _/ \\_}+y*3+t][n].map{|a|a.rjust(6," ")+a.reverse.tr("\\\\/d","/\\\\b")}}

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

एक पूर्णांक 0-3 लेता है। प्रत्येक चरण के बाएं हिस्सों की एक सरणी बनाता है, फिर सूचकांक करता है, फिर प्रत्येक पंक्ति को पैड और प्रतिबिंबित करता है। सभी पैडिंग एक ही चौड़ाई की है, इसलिए बाद के चरणों में अग्रणी व्हाट्सएप है। स्ट्रिंग्स की एक सरणी देता है।

-2 बाइट्स: yजरूरत के बजाय तुरंत एक ऐरे के रूप में घोषित करें*[y] बाद ।

-5 बाइट्स: x="\\"साथ बदलेंt=%w{_| \\}

-5 बाइट्स: कम डेरेफेरिंग, अधिक सरणी जोड़।

-1 बाइट्स: h+y*21+[?A*2]->h+y*21<<?A*2 चरण 1 में।

-3 बाइट्स: युक्ति की चूक की अनुमति देता है *$/ परिणाम में शामिल होने की छूट ।

-4 बाइट्स: ["b","\\_","_/"]->%w{b \\_ _/} चरण 3 में।

-2 बाइट्स: उपयोग करें %w हेड ऐरे में भी नोटेशन का ।

-7 बाइट्स: उपयोग करें rjust मैनुअल पैडिंग के बजाय इसका (इसका अर्थ यह भी है कि बाईं ओर जेनरेट करें और इसे मिरर करें, बजाय राइट साइड से शुरू करने के)

Ungolfed:

->n{
  y=*"| "                                            # Same as y=[" |"]
  h=%w{/ /\ }+["|  "]*3+%w{|__ \\_}+y*3              # Head for phases 0-2
  t=%w{|_ /}                                         # Tail for phases 2,3
  [
    h+["| ","/\\ | ","/  \\| ",*["|  || "]*18,?A*6], # Phase 0
    h+y*21<<?A*2,                                    # Phase 1
    h+t,                                             # Phase 2
    %w{d _/ \\_}+y*3+t                               # Phase 3
  ][n].map{|a|                                       # Choose phase
    a.rjust(6," ") +                                 # Pad left to width 6
    a.reverse.tr("\\\\/d","/\\\\b")                  # Add mirror (right side)
  }
}


2

रूबी , 209 183 बाइट्स

->n{z=[a=' /\\ ',b='/  \\']+['|    |']*3+%w{|____| \__/}+[c='|  |']*24+[?A*n]
n>4&&z[10..-n/6]=n>8?[c,a+c+a,b+c+b]+[c*3]*18:['|__|',a]
n==5&&z[0,6]=%w{db _/\_}
z.map{|i|i.center(12)}}

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

आवश्यक इनपुट निम्नानुसार हैं:

Centre core + upper stage + fairing: 4
As above + boosters : 12
Upper stage + fairing: 6
Upper stage without fairing 5

विचार centre core + upper stage + fairingएक डिफ़ॉल्ट के रूप में लेना है और इसे अन्य आउटपुट के लिए संशोधित करना है।

टिप्पणी की गई

->n{
  #z = array of parts for centre core + upper stage + fairing, with n A's at the bottom
  z=[a=' /\\ ',b='/  \\']+['|    |']*3+%w{|____| \__/}+[c='|  |']*24+[?A*n]

  #if n not 4, z from element 10 to the last [10..-1] or last but one [10..-2] =
  n>4&&z[10..-n/6]=
    n>8?[c,a+c+a,b+c+b]+[c*3]*18:   #centre core + boosters#
    ['|__|',a]                      #upper stage engine
  n==5&&z[0,6]=%w{db _/\_}        #if n==5, replace first 6 elements with unfaired payload
  z.map{|i|i.center(12)}          #pad each element of array to 12 characters
}                                 #return array of strings (format allowed by question)

इनपुट का गैर-तुच्छ उपयोग करने के लिए पहला उत्तर! बहुत अच्छा।
बेंज 2240

1

लाल , 333 बाइट्स

f: func[g][t:{    }b:{ /\ }c:{/  \}d:{   |}e:{|}j:{\__/}k:{|  |}a:{AAAA}h:[1[t b]1[t c]3[d t e]1[d{____}e]1[t j]]z:[3[t k]1[t{|__|}]1[t b]]r: func[w][foreach[i v]w[loop i[print rejoin v]]]switch g[1 do[r h r[4[t k]1[b k b]1[c k c]18[k k k]]r[1[a a a]]]2 do[r h r[24[t k]]r[1[t a]]]3 do[r h r z]4 do[r[1[t{ db}]1[t{_/\_}]1[t j]]r z]]]

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

इनपुट के रूप में 1 - 4 लेता है

f: func [ g ] [
    t: {    }
    b: { /\ }
    c: {/  \}
    d: {   |}
    e: {|}
    j: {\__/}
    k: {|  |}
    a: {AAAA} 
    h: [1 [t b] 1 [t c] 3 [d t e] 1 [d {____} e ] 1 [t j]]
    z: [3 [t k] 1 [t {|__|}] 1 [t b]]
    r: func [ w ] [
        foreach [ i v ] w [
            loop i [print rejoin v]]]
    switch g [
        1 do [r h r [4 [t k] 1 [b k b] 1 [c k c] 18 [k k k]] r [1 [a a a]]]
        2 do [r h r [24 [t k]] r [1 [t a]]]
        3 do [r h r z]
        4 do [r [ 1 [t { db}] 1 [t {_/\_}] 1 [t j] ] r z]
    ]
]

रीबोल , 258 बाइट्स

मैंने Rebol's compressfunction के साथ एक प्रयोग किया , सभी 4 चरणों की एक स्ट्रिंग को संपीड़ित किया और विसंपीड़न के बाद इसके संबंधित हिस्से को प्रिंट किया:

f: func[n][o:[[1 374][374 196][570 74][644 37]]
b: decompress debase{eJzjUgAB/RguMKWgAGbUgDg1OFnxQABmKcTEx+uDGTVQOZwM/RgwA2QTyBYQG2wbiAHDw5vjiAS4IEEOCwGoWmQKGsaQAIYE4eAhqeMFSCICGZKSxBWvHxPPBVYKDzkoAVamHwMAjkWmoKkCAAA=}
repeat i o/(n)/2[prin b/(i + o/(n)/1)]]

 f 3
  /\
 /  \
|    |
|    |
|    |
|____|
 \__/
 |  |
 |  |
 |  |
 |__|
  /\

1

Jstx , 124 बाइट्स

↕t▌ÇÇÉÇ~éÇÇÇÇÇÇÇÉΘçK↑ε♀▄ü╙Çz⌡"#ße┐é+\òEhZ█╣S♪[ƒuø>!f♪K▌;0♂9☺}ås══½☻eP▌◙&£óZß:&╝af$V≈-wº[√D(♪╘Pφó√ò▲¶>å⌡◘├^∟z◘αßj◙÷»|æ⌠┼øk&£b

व्याख्या

↕t▌ÇÇÉÇ~éÇÇÇÇÇÇÇÉΘçK↑ε♀▄ü╙Çz⌡"#ße┐é+\òEhZ█╣S♪[ƒuø>!f♪K▌;0♂9☺}ås══½☻eP▌◙&£óZß:&╝af$V≈-wº[√D(♪╘Pφó√ò▲¶>å⌡◘├^∟z◘αßj◙÷»|æ⌠┼ # Push literal      /\\n    /  \\n   |    |\n   |    |\n   |    |\n   |____|\n    \__/\n    |  |\n    |  |\n    |  |\n    |  |\n /\ |  | /\\n/  \|  |/  \\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\n|  ||  ||  |\nAAAAAAAAAAAA0\n  /\\n /  \\n|    |\n|    |\n|    |\n|____|\n \__/\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n |  |\n AAAA0\n  /\\n /  \\n|    |\n|    |\n|    |\n|____|\n \__/\n |  |\n |  |\n |  |\n |__|\n  /\0\n db\n_/\_\n\__/\n|  |\n|  |\n|  |\n|__|\n /\
ø                                                                                                                       # Push literal 0
k                                                                                                                       # Push a list of strings obtained by splitting the second stack value with the first stack value.
&                                                                                                                       # Swap the top two stack values.
£b                                                                                                                      # Push the value in the list of the second stack value at the index of the first stack value.

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


0

सी (क्लैंग) , 421 408 बाइट्स

r,d,i;f(t){char *s="    ",*e="\n",*l[]={" /\\ ","/  \\","|    |","|____|","\\__/","|  |","AAAA","|__|"," /\\ ","_/\\_","\n"," db","|  ||  ||  |"},*p[]={"VABU3C1DVE8FFF1G","VABU3C1DVE4F1RYAFAKBFBKZ9MM1YGGG","VABU3C1DVE3F1HI","VLJE3F1HI"},*a="",*b,*c=e,*q=p[t];for(r=1;d=*q++;r=(d/48&&57/d)?d-48:r,c=(d/89&&90/d)?e+90-d:c,a=(d/82&&86/d)?s+86-d:a)if(d/65&&77/d)for(b=l[d-65],i=0;i<r;i++)printf("%s%s%s",a,b,c);}

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


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