लैंबडा ब्लाजेन ड्रा करें


16

480 ईसा पूर्व में सलामी में ग्रीक जीत की 2497 वीं वर्षगांठ का जश्न मनाने के लिए। लैंबडा ब्लाजेन ड्रा करें।

लैम्ब्डा ब्लेज़ोन था लैंबडा को ग्रीक ढालों पर इस तरह चित्रित किया गया था:

गोलाकार सफेद और सोने की ढाल पृष्ठभूमि पर लाल पूंजी लैंबडा की छवियां

पहेली: एक सकारात्मक विषम पूर्णांक एन को देखते हुए, ऊपर की ढाल की एक एससीआई कला छवि का उत्पादन करें।

विशेष विवरण:

n = 1:

( /\ )

एन = 3:

(   /\   )
|  /  \  | 
( /    \ )

एन = 5

(     /\     )
|    /  \    |
|   /    \   |
|  /      \  |
( /        \ )

ग्राफ: n = 3

          2|   (   /\   )
y-axis    1|   |  /  \  | 
          0|   ( /    \ )
               ___________  
               0123456789

                 x-axis

विवरण:

बिल्कुल n \ अक्षर और n / अक्षर होने चाहिए । /और \रों ढाल के किनारे नहीं छूना चाहिए। ढाल के नीचे और शीर्ष कोनों को एक (या )जब तक n = 1 के साथ निरूपित किया जाएगा जहां एक )और एक होगा (। नीचे के कोनों और लैम्ब्डा के बीच हमेशा एक स्थान रहेगा, y अक्ष के साथ 1 तक बढ़ेगा y + 1 == n। ढाल पक्ष के गैर कोनों के साथ चिह्नित किया जाएगा| । कोई शील्ड टॉप नहीं है।


7
नीच क्यों? (2 और जाने के लिए)
user202729

3
@ user202729 आपको 2 और जाने का क्या मतलब है?
जैकसनकैक

4
एसई में टिप्पणी प्रतिबंध है, जो कम से कम 15 वर्ण होने के लिए मजबूर करता है।
user202729

7
आप इसे 2.5k'th सालगिरह के लिए पोस्ट करने के लिए 3 साल इंतजार क्यों नहीं कर सकते थे; -;
हाइपरन्यूट्रिनो

5
केवल अजीब पूर्णांक क्यों? : ओ
फेलिक्स पालमेन

जवाबों:


8

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

4 बाइट बचाने के लिए @ नील का शुक्रिया!

(↙↓⊖θM↑(→↗N‖M

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

स्पष्टीकरण:

(↙                // Print '(' and move one step down and to the left.
  ↓⊖θ             // Print n-1 '|'s downwards.
     M↑          // Move one step up.
        (→        // Print '(' and move one step to the right.
          ↗N      // Print n '/'s towards the upper right corner.
            ‖M    // Mirror the left half to produce the right half.

1
आपको एक बाइट बचाता है, और आपका आधा हिस्सा अनावश्यक है।
नील

1
इसके अलावा, आपका एक और बाइट बचाने के लिए Iθहो सकता है।
नील

नील के सुझावों को
सारांशित करते

@ Mr.Xcoder धन्यवाद, लेकिन मैं उन लोगों को पहले से ही कर रहा था।
स्टेडीबॉक्स

यह छोटा है, लेकिन मेरा मानना ​​है कि आपके स्पष्टीकरण (→का अर्थ "... और एक कदम दाईं ओर होना चाहिए "
कामिल दकरी

6

SOGL V0.12 , 17 14 बाइट्स

┐*ƨ(Κm«@.╚┼┼╬³

यह कोशिश करो!

स्पष्टीकरण:

example input: 3
┐*              push a string of input amount of "|"                      "|||"
  ƨ(            push "("                                                  "|||", "(("
    Κ           prepend that to the vertical bar string                   "((|||"
     m          mold that string as the input (remove excess characters)  "((|"
      «         put the first character at the end                        "(|("
       @        push a space                                              "(|(", " "
        .╚      create a diagonal of input length                         "(|(", " ", ["  /", " / ", "/  "]
          ┼┼    append those three horizontally together                  ["(   /", "|  / ", "( /  "]
            ╬³  palindromize that all                                     

4

सी (जीसीसी) , 103 96 बाइट्स

  • सेविंग के लिए सात बाइट्स धन्यवाद ।
f(n,j,b){for(j=n;j--;printf("%c%*c%*c%*c\n","|("[b],j+2,47,n+n-j+~j,92,j+2,"|)"[b=j<1|n-2<j]));}

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


हम मुख्य बहाने और अब शामिल हैं? यह समुदाय बदल गया है।
अलेक टील

2
@AlecTeal यह एक फ़ंक्शन लिखने के लिए स्वीकार्य है जो एक पूर्ण कार्यक्रम के बजाय निर्दिष्ट कार्य करता है। सामान्य रूप में शामिल करते बाइट गिनती की ओर गिनती, कुछ सी संकलक, तथापि, एक समारोह परिभाषा अनुमान लगाना यदि कोई मिलता-जुलता मौजूद हैं शामिल प्रयास करते हैं।
जोनाथन फ्रीच

लगता है कि आपने गलत संख्या पार कर ली है, प्रमुख
Veskah

@Veskah सच। ._।
जोनाथन फ्रीच

3

रेटिना , 41 बाइट्स

.+
$* 
 
( $'/$`$`\$' )¶
G`.
sT`()`|`¶.*¶

इसे ऑनलाइन आज़माएं! स्पष्टीकरण:

.+
$* 

यूनीरी में कनवर्ट करें, लेकिन रिक्त स्थान का उपयोग करके।

 
( $'/$`$`\$' )¶

प्रत्येक लाइन पर केंद्र स्थान की बढ़ती मात्रा के साथ लाइनों की एक श्रृंखला उत्पन्न करने के लिए मैच उपसर्ग और प्रत्यय ऑपरेटरों का उपयोग करें।

G`.

हालाँकि, एक अतिरिक्त रिक्त रेखा है, जो अंतिम लिप्यंतरण को फेंक देती है, इसलिए इसे यहां हटा दें।

sT`()`|`¶.*¶

पहले और आखिरी को छोड़कर सभी लाइनों पर, ()एस को |एस में बदलें ।







2

बैच, 218 बाइट्स

@echo off
set s=
for /l %%i in (1,1,%1)do call set s= %%s%%
set s=%s%/\%s%
echo (%s%)
for /l %%i in (2,1,%1)do call:l %1 %%i
exit/b
:l
set s=%s: /=/ %
set s=%s:\ = \%
if %1==%2 (echo ^(%s%^))else echo ^|%s%^|

के रूप में अगर |रों काफी बुरा नहीं थे, ()के साथ अच्छी तरह से काम नहीं करते if... else


2

05ab1e (27 बाइट्स)

F"|("0NQ¹<NQ~èð¹N-×'/ðN×J∞,

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

व्याख्या

F                                                #Loop n times        
 |("0NQ¹<NQ~è                                    #Use ( or |        
             ð¹N-×                               #put spaces (1)        
                  '/                             #put /                
                    ðN×                          #put more space                
                       J∞,                       #reverse image        

मुझे लगता '/¹N-úहै कि बाइट की तुलना में कम है ð¹N-×'/
नील

अच्छा तरीका है, लेकिन गोल्फ के लिए कुछ चीजें हैं। एक वह है जो @ निल ने ऊपर सुझाया है। इसके अलावा: "|("हो सकता है „|((1, 2, और 3-चार तार के क्रमशः निर्माण होते हैं ', और क्रमशः); तथा0NQ¹<NQ~ हो सकता है ΂Nåè( ÎTIO की विरासत संस्करण में bugged किया जा रहा है, लेकिन यह 05AB1E के नवीनतम संस्करण, जिस स्थिति में आप भी प्रतिस्थापित करना होगा में काम करता है के साथ º)। तो कुल मिलाकर ( 21 बाइट्स ): F„|(΂Nåè'/¹N-úðN×Jº, इसे ऑनलाइन आज़माएं
केविन क्रूज़सेन


1

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

n=input()
for i in range(n):m=-~i%n<2;s=' '*(n-i);print'|('[m]+s+'/'+'  '*i+'\\'+s+'|)'[m]

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

-1 ओवंस को धन्यवाद ।


के लिए विफल रहता है n=1, लेकिन बदलकर इसे ठीक किया जा सकता है i%~-n<1के साथ-~i%n<2
रॉड

@ राड धन्यवाद, तय
एग आउटोलफर ऑक्ट

90 बाइट्स : '<space>'*i*2->'<space><space>'*i
ovs

@ नोव्स @ _ @ मैंने ऐसा क्यों नहीं सोचा
ऑर्गन द आउटगॉल्फ ऑक्ट

1

सी # (.NET कोर) , 188 बाइट्स

n=>{int y=0,i=-1;var s="";while(y<n){var r=new char[n*2+4];r[n+1-y]='/';r[n+2+y]='\\';if(y<2|y++>n-2)i++;r[0]="(|("[i];r[n*2+3]=")|)"[i];s+=new string(r)+"\n";}return s.Replace("\0"," ");}

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

Degolfed

n=>{
    int y=0,i=-1;
    var s="";

    while(y<n){
        var r=new char[n*2+4];
        r[n+1-y]='/';
        r[n+2+y]='\\';

        if(y<2 | y++>n-2)
            i++;

        r[0] = "(|("[i];
        r[n*2+3] = ")|)"[i];

        s += new string(r)+"\n";
    }

    return s.Replace("\0"," ");
}

1

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

b=c=int(input())*2
d,e='/\\'
while b:print('(|%%ss)|'[2<b<c::2]%f' {d+e:^{c}} ');d+='  ';b-=2

1

पॉवरशेल , 93 91 90 89 बाइट्स

-2 ASCII के लिए धन्यवाद केवल अतिरिक्त पार्स को इंगित करने के लिए
-1 स्वैप के तर्क के लिए Mazzy के लिए धन्यवाद

param($n)0..--$n|%{"|("[!($x=($n-$_)*$_)]+($y=" "*($n-$_+1))+"/"+"  "*$_+"\$y"+"|)"[!$x]}

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

उस $x=बिट को ट्विक करने की कोशिश की जा रही है । शायद कुछ कम बाइट्स में पहली और अंतिम पंक्ति को बाहर करने का एक बेहतर तरीका है। वहाँ एक बेहतर है, $x=लेकिन यह बहुत सस्ता नहीं है।



0

कैनवस , 12 बाइट्स

┤|×(e⟳ +╴/+║

यहाँ यह कोशिश करो!

स्पष्टीकरण:

┤             decrease the input by 2
 |×           repeat "|" vertically - if the amount is -1 (for input of 1), ir just removes the item currently
   (          push "("
    e        encase in that parentheis - if that first string isn't there, currently it just fails doing anything and leaves the parenthesis on the stack
     ⟳       rotate clockwise
       +     append horizontally a space
        ╴/   get a diagonal the length of the input
          +  append it horizontally to the current result
           ║  and palindromize horizontally with 0 overlap
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.