ল্যাম্বদা ব্লেজন আঁকুন


16

480 বিসি সালে সালামিসে গ্রীক বিজয়ের 2497 তম বার্ষিকী উদযাপন করা। ল্যাম্বদা ব্লেজন আঁকুন।

ল্যাম্বডা ব্লেজন হ'ল ল্যাম্বদা গ্রীক shালগুলিতে এমনভাবে আঁকা:

বিজ্ঞপ্তি সাদা এবং সোনার ieldাল ব্যাকগ্রাউন্ডে লাল রাজধানী ল্যাম্বদা এর চিত্র

ধাঁধা: ধনাত্মক বিজোড় পূর্ণসংখ্যা এন দেওয়া, উপরের ঝালটির একটি আসকি শিল্প চিত্র তৈরি করুন।

বিশেষ উল্লেখ:

এন = 1:

( /\ )

এন = 3:

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

এন = 5

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

গ্রাফ: এন = 3

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

                 x-axis

বর্ণনা:

ঠিক n \ অক্ষর এবং এন / অক্ষর থাকা উচিত। /S এবং \গুলি ঢাল প্রান্ত স্পর্শ করা উচিত নয়। ঢাল নীচে এবং উপরের কোণে একটি সঙ্গে প্রকাশ করা হবে না (বা )যদি না এন = 1 যেখানে এক হতে হবে )এবং এক (। নীচের কোণ এবং ল্যাম্বদা এর মাঝে সর্বদা একটি স্থান থাকবে, যতক্ষণ না y অক্ষ দিয়ে 1 বাড়বে y + 1 == n। ঝাল পক্ষের কোন কোণগুলি দিয়ে চিহ্নিত করা হবে |। কোন ঝাল শীর্ষ নেই।


7
ডাউনভোট কেন? (আরও 2 জন যেতে হবে)
ব্যবহারকারী 202729

3
@ user202729 আপনি আরও 2 টি যেতে চাইছেন?
জ্যাকসোনাক

4
এসই-তে মন্তব্য চরিত্রের সীমাবদ্ধতা রয়েছে, যা কমপক্ষে কমপক্ষে 15 টি অক্ষর হতে মন্তব্যগুলিকে বাধ্য করে।
ব্যবহারকারী 202729

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θকরতে পারেন
নিল

নীলের পরামর্শগুলির
সমষ্টি

@ মিঃ এক্সকোডার ধন্যবাদ, তবে আমি ইতিমধ্যে সেগুলি করতে পেরেছি।
স্টেডিবক্স

এটি ছোট, তবে আমি বিশ্বাস করি যে আপনার ব্যাখ্যার (→অর্থ "... এবং ডানদিকে এক ধাপ সরানো উচিত "
কামিল দ্রাকারী

6

এসওজিএল ভি0.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
@ অ্যালকিটিল একটি সম্পূর্ণ প্রোগ্রামের চেয়ে নির্দিষ্ট কাজ সম্পাদন করে এমন একটি ফাংশন লিখতে এটি গ্রহণযোগ্য। সাধারণভাবে সহ Do বাইট গণনা প্রতি গণনা, কিছু সি কম্পাইলার, তবে, একটি ফাংশন সংজ্ঞা অনুমান করা যদি আপনার সাথে মেলে এমন উপস্থিত রয়েছে প্রচেষ্টা।
জোনাথন ফ্রেচ

ভাবেন আপনি ভুল নম্বরটি
পেরিয়ে গেছেন

পছন্দ করুন ._।
জোনাথন ফ্রেচ

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%^|

যেন |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-×'/
নীল

দুর্দান্ত পন্থা, তবে গল্ফ করার জন্য কয়েকটি জিনিস রয়েছে। One কি @Neil উপরে সুপারিশ করেছে। উপরন্তু: "|("হতে পারে „|((সেখানে 1 builtins, 2, এবং 3-গৃহস্থালির কাজ স্ট্রিং হচ্ছে ', এবং যথাক্রমে); এবং 0NQ¹<NQ~এটি হতে পারে ΂Nåè( Îটিআইওর উত্তরাধিকার সংস্করণে বগড হয়েছে বলে মনে হচ্ছে তবে এটি 05 এএবি 1 ই এর সর্বশেষ সংস্করণে কাজ করবে, এক্ষেত্রে আপনাকে এর সাথে প্রতিস্থাপনও করতে হবে º)। সুতরাং মোট ( 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 ovs ধন্যবাদ ।


ব্যর্থ হয় n=1, তবে এর i%~-n<1সাথে প্রতিস্থাপনের মাধ্যমে স্থির করা যেতে পারে-~i%n<2
রোড

@ রড ধন্যবাদ, স্থির
এরিক দ্য আউটগল্ফার

90 বাইট : '<space>'*i*2->'<space><space>'*i
ovs

@ovs @ _ @ আমি কেন এটি ভেবে দেখিনি
এরিক দ্য আউটগোল্ফার

1

সি # (.নেট কোর) , 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 অদলবদলের লজিক টুইট করার জন্য মজিকে ধন্যবাদ

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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.