এএসসিআইআই আর্ট অফ দি ডে # 3 - চাইনিজ শ্রীরাণস


16

এএওডির আজকের পর্বে, আমরা বিভিন্ন উচ্চতার একটি চীনা মন্দির তৈরি করতে যাচ্ছি।

উচ্চতা ( N) 1থেকে নিম্নের জন্য নিম্নলিখিত উদাহরণগুলি বিবেচনা করুন6

N = 1:

       .
       |
  .   ]#[   .
   \_______/
.    ]###[    .
 \__]#.-.#[__/
  |___| |___|
  |___|_|___|
  ####/_\####
     |___|
    /_____\

N = 2:

         .
         |
    .   ]#[   .
     \_______/
  .    ]###[    .
   \___________/
.     ]#####[     .
 \___]#.---.#[___/
  |__|_|   |_|__|
  |__|_|___|_|__|
  #####/___\#####
      |_____|
     /_______\

N = 3:

           .
           |
      .   ]#[   .
       \_______/
    .    ]###[    .
     \___________/
  .     ]#####[     .
   \_______________/
.      ]#######[      .
 \____]#.-----.#[____/
  |__|__|     |__|__|
  |__|__|_____|__|__|
  ######/_____\######
       |_______|
      /_________\

N = 4:

             .
             |
        .   ]#[   .
         \_______/
      .    ]###[    .
       \___________/
    .     ]#####[     .
     \_______________/
  .      ]#######[      .
   \___________________/
.       ]#########[       .
 \_____]##.-----.##[_____/
  |__|__|_|     |_|__|__|
  |__|__|_|_____|_|__|__|
  ########/_____\########
         |_______|
        /_________\

N = 5:

               .
               |
          .   ]#[   .
           \_______/
        .    ]###[    .
         \___________/
      .     ]#####[     .
       \_______________/
    .      ]#######[      .
     \___________________/
  .       ]#########[       .
   \_______________________/ 
.        ]###########[        .
 \______]###.-----.###[______/
  |__|__|___|     |___|__|__|
  |__|__|___|_____|___|__|__|
  ##########/_____\##########
           |_______|
          /_________\

N = 6:

                 .
                 |
            .   ]#[   .
             \_______/
          .    ]###[    .
           \___________/
        .     ]#####[     .
         \_______________/
      .      ]#######[      .
       \___________________/
    .       ]#########[       .
     \_______________________/ 
  .        ]###########[        .
   \___________________________/ 
.         ]#############[         .
 \_______]####.-----.####[_______/
  |__|__|__|__|     |__|__|__|__|
  |__|__|__|__|_____|__|__|__|__|
  ############/_____\############
             |_______|
            /_________\

ইত্যাদি।

নির্মাণের বিশদ

আমি নিশ্চিত যে প্যাটার্ন সম্পর্কে বেশিরভাগ বিবরণ পরিষ্কার। এখানে কিছু সূক্ষ্ম বিবরণ দেওয়া হল:

  • মাজারের নীচে দরজাটি সর্বনিম্ন 1 _প্রস্থ এবং সর্বাধিক 5 _প্রস্থের হতে পারে ।
  • .দরজার চারপাশের স্তম্ভগুলির উপরে দুটি সর্বদা দুটি থাকবে (দুটি উল্লম্ব |)।
  • সিঁড়িটি দরজার সমান প্রস্থ দিয়ে শুরু হয় এবং প্যাটার্নে শোয়ের মতো বৃদ্ধি পায়
  • ]##..##[প্রতিটি ছাদ স্তরের উপরে ব্লক আকার বৃদ্ধি 2উপর থেকে নীচে।
  • \__...__/ছাদ স্তরের আকার বৃদ্ধি 4উপর থেকে নীচে।
  • দরজার চারপাশের দেয়ালগুলি ন্যূনতম 1 _এবং 3 _দু'জনের মধ্যে সর্বাধিক থাকা উচিত |। অগ্রাধিকার বাইরের প্রাচীরের ব্লকগুলিতে যায় যাতে দরজার নিকটবর্তী একটিটি প্রতিটি স্তরের জন্য পৃথক আকার পায়।
  • .এবং ](বা [) এর মধ্যবর্তী স্থানটি #দরজার ঠিক উপরে ছাদে পূর্ণ হয় ।

চ্যালেঞ্জের বিশদ

  • একটি ফাংশন বা পূর্ণ প্রোগ্রাম লিখুন যা 0STDIN / ARGV / ফাংশন আর্গুমেন্ট বা নিকটতম সমতুল্য এবং আউটপুটগুলির (STDOUT বা নিকটতম সমতুল্য) Nতম চীনা শ্রীনস্থানের চেয়ে বৃহত্তর ধনাত্মক পূর্ণসংখ্যার পাঠ করে
  • ট্রেলিং নিউলাইন optionচ্ছিক।
  • নূন্যতম বাউন্ডিং আয়তক্ষেত্রে আউটপুট প্যাড করার জন্য কোনও পিছনে স্থান বা পর্যাপ্ত পরিমাণ ট্রেলিং স্পেস থাকতে হবে না।
  • প্যাটার্নের অংশ না এমন কোনও শীর্ষস্থানীয় স্থান থাকতে হবে না।

লিডারবোর্ড

সিরিজের প্রথম পোস্টটি লিডারবোর্ড উত্পন্ন করে।

আপনার উত্তরগুলি প্রদর্শিত হবে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে প্রতিটি উত্তর শিরোনাম দিয়ে শুরু করুন:

# Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby, <s>104</s> <s>101</s> 96 bytes

দরজার প্রস্থটি আমার কাছে বরং স্বেচ্ছাচারী বলে মনে হচ্ছে - কেন এটি N=1ক্ষেত্রে 1 ? 3 এবং কেন N=2ক্ষেত্রে ছোট পাশের উইন্ডোগুলি নেই ?
ম্যাটি

এছাড়াও, N=1ক্ষেত্রে, প্রথম ছাদটি খুব দীর্ঘ (প্রশস্ত) নয়?
ম্যাটি

@Matty সংক্রান্ত দরজা - যদি দরজা প্রস্থ 3 হলেন, তখন সেখানে হবে কোন #পাশে .সমর্থন করার জন্য ]এবং [উপরে। প্রারম্ভিক ছাদের আকার সম্পর্কে - এটি প্রতিটি উচ্চতার শীর্ষ ছাদে ছাদের আকার।
অপ্টিমাইজার

আমি জানালার ঠিক ওপরে নীচের সর্বাধিক ছাদ সম্পর্কে জিজ্ঞাসা করছিলাম। অন্যান্য সমস্ত ক্ষেত্রে এটির উপরে ছাদটির আকার +4 (উভয় পক্ষের +2)। তবে এটি এখানে +8।
ম্যাটি

@ মট্টি ওহ, আপনি ঠিক বলেছেন। সংশোধন করা হয়েছে।
অপ্টিমাইজার

উত্তর:


2

সিজাম, 200 বাইট

-4'.-4'|]2/ri:M),{2af.-~[W'.I3+~']'#I)*][-2'\'_I2*4+*]]}fI~[~M)<']
M2m1e>'#*'.'-M3e<:D*][-3"|__"M*M2+M2*(e>:L<"_|"D~][_~~'_*][-3'#L)*
'/'_D*][L2+~'|'_D)*][L)~'/'_D2+*]]{{_0<{~S*}&}%s_W%1>"\/]""/\["erN}%

স্ক্রোলিং এড়াতে নিউলাইনগুলি যুক্ত করা হয়েছে। এটি অনলাইনে চেষ্টা করুন

সংক্ষিপ্ত বর্ণনা:

প্রোগ্রামটি মাজারের বাম অর্ধেকটি (মাঝামাঝি সহ) তৈরি করে, তারপরে এটি উল্টায় এবং ডান অর্ধেক পেতে কিছু অক্ষরকে প্রতিস্থাপন করে। এন স্পেসের একটি সিরিজটি নির্মাণের সময় ~ n (বিটওয়াস "নয়") হিসাবে উপস্থাপিত হয় এবং শেষে আসল স্পেস দিয়ে প্রতিস্থাপন করা হয়।

প্রোগ্রামটি শীর্ষ 2 লাইন দিয়ে শুরু হয়, তারপরে প্রতিটি ছাদ স্তরের জন্য, এটি পূর্ববর্তী সমস্ত লাইনগুলিকে 2 স্পেস সহ প্রিপেন্ড করে এবং নতুন ছাদ (2 লাইন) যুক্ত করে। "উপরের দরজা" অংশটি যুক্ত করতে শেষ ছাদটি পরিবর্তন করা হয়েছে।

এরপরে, উপরের প্রাচীরটি "| __" পুনরাবৃত্তি করে এবং ডান দৈর্ঘ্যে কাটা দ্বারা তৈরি করা হবে, তারপরে একটি স্থির "_ |" এবং স্পেস। এর পরে প্রাচীরটি সদৃশ হয়ে যায় এবং দরজার স্পেসগুলি আন্ডারস্কোর দিয়ে প্রতিস্থাপন করা হয়। অবশেষে, নীচের অংশটি লাইন দ্বারা লাইন নির্মিত হয়।


5

পার্ল, 332 316 294

$:=($w=<>)*2+6;$r=2x($m=$w>3?3:$w);$k=1x($w-3).b.4x$m;
y!a-f1-4!/.|\\[,#_ -!,/,/,s/(.*),(.*).{@{-}}/$2$1/,printf"%$:s%s
",y!/\\[!\\/]!r,(reverse=~s/.//r)for@x=(b,c,
(map{b33.3x$_.e.1x$_,"[#$k,"x/$w/.a__.22x$_}1..++$w),
_c.3x$m.f.($z=substr"|__"x$:,0,2*++$w),"_|$r,$z","d$r,".11x$w,c_.$r,d__.$r)

আমাকে চেষ্টা করুন

সি, 371

d,i,w;char s[1<<24];m(){v(w,13);}p(){puts(s+1);}
v(i,j){s[w-i]=".|]\\#/"[j%7];s[w+i]=".|[/#\\"[j%7];
while(i--)s[w-i]=s[w+i]="# _-"[j/7];}
main(l){scanf("%d",&l);d=l>3?3:l;m(w=l*2+6);p(v(0,0));
for(v(0,1);i++<=l;v(i*2+2,17))p(),v(i*2+3,7),m(p(v(i,2)));v(l+2,2);p(v(d,21));
for(m(i=w-3);i>d+1;i-=3)v(i,15);p(v(d,8));p(v(d,15));
v(w-3,4);m(p(v(d,19)));p(v(d+1,15));p(v(d+2,19));}

আমাকে চেষ্টা করুন

জাভাস্ক্রিপ্ট, 365

উপরেরগুলি জাভাস্ক্রিপ্টে প্রায় 1 থেকে 1 টি অনুবাদ করা যায়:

s=[];r="";i=0;m=()=>v(w,13);p=()=>r+=s.join('')+"\n";
v=(i,j)=>{s[w-i]=".|]\\#/"[j%7];s[w+i]=".|[/#\\"[j%7];
while(i--)s[w-i]=s[w+i]="# _-"[j/7|0];};
f=l=>{d=l>3?3:l;m(w=l*2+6);p(v(0,0));
for(v(0,1);i++<=l;v(i*2+2,17))p(),v(i*2+3,7),m(p(v(i,2)));v(l+2,2);p(v(d,21));
for(m(i=w-3);i>d+1;i-=3)v(i,15);p(v(d,8));p(v(d,15));
v(w-3,4);m(p(v(d,19)));p(v(d+1,15));p(v(d+2,19));}

ব্যবহার করুন:

f(2);console.log(r)

সি সংস্করণটি উপরে 12 টি আকারের জন্য ক্র্যাশ হয়ে গেছে বলে মনে হচ্ছে আপনি অস্থায়ী ফলাফলগুলি ধরে রাখতে নির্দিষ্ট আকারের স্ট্রিংটি ব্যবহার করছেন বলে আমি মনে করি আপনি সর্বদা একটি উচ্চতর সীমা বজায় রাখবেন, আপনি আকারটি কীভাবে বেছে নিবেন তা বিবেচনা না করেই s। আপনি এটি গতিশীলভাবে বরাদ্দ না দিলে অবশ্যই।
রেটো কোরাডি

@ রিটোকোরাডি, হ্যাঁ আপনি ঠিক বলেছেন, আমি ভুল করে একটি ছোট বাফার সহ সংস্করণ পোস্ট করেছি। তবে শেষ পর্যন্ত, যদি না এটি গতিশীলভাবে বরাদ্দ দেওয়া হয় তবে সর্বদা একটি সীমা থাকবে।
নটকি

4

পাইথন 2, 356 352 347 344 বাইট

n=input()
A,B,C,D,E,F,G,H,I='_ |\/#.]['
def p(*S):
 for s in S:print(5+2*n-len(s)/2)*B+s
p(G,C,'.   ]#[   .')
for i in range(n):b=B*(4+i);p(D+A*(7+4*i)+E,G+b+H+F*(3+2*i)+I+b+G)
d=2*min(3,n)-1
a=A*(2+i)
f=F*(1+i-d/2)
j=4+2*i-d/2
w=('|__'*n)[:j-1]+A+C
v=w[::-1]
p(D+a+H+f+G+'-'*d+G+f+I+a+E,w+B*d+v,w+A*d+v,F*j+E+A*d+D+F*j,C+A*(d+2)+C,E+A*(d+4)+D)

এটি মূলত লাইন দ্বারা মাজার লাইন তৈরি করে। কাজp কেন্দ্রের জন্য প্রয়োজনীয় স্পেসগুলি সহ একটি স্ট্রিং মুদ্রণ করে।

প্রচুর বাইট সংরক্ষণ করতে আমি পাইথন 2 ব্যবহার করেছি , কারণ পাইথন 3 ম্যাপ অবজেক্টটি ট্রিগার করে না। আমার ধারণা আমার পাইথন 2 তে সর্বদা গল্ফ করা উচিত , আরও কয়েকটি বাইট সংরক্ষণ করা উচিত (এমনকি এটির জন্য ইনপুটটি পার্স করার দরকার নেই)। হেইহে, এটি প্রথমে গল্ফ করার জন্য কোডের মতো নয়।

সম্পাদনা করুন: এবং অবশ্যই এখন আমার আর মানচিত্রের দরকার নেই ...

বর্ণহীন আকারে কোডটি এখানে:

n = int(input())

# A function to print strings centered
half_width = 5 + 2*n
def p(string):
    spaces = ' ' * (half_width - len(string) // 2)
    print(spaces + string)

# The rooftops
p('.')
p('|')
p('.   ]#[   .')
for i in range(n):
    p('\\' + '_'*(7 + 4*i) + '/')
    p('.{0}]{1}[{0}.'.format(' '*(i + 4), '#'*(3 + 2*i)))

# The bottom rooftop
door_width = 2 * min(3, n) - 1
# (11+4i - (3+2i) - 4) / 2 = (4 + 2i) / 2 = 2 + i
p('\{0}]{1}.{2}.{1}[{0}/'.format('_'*(2 + i), '#'*(1 + i - door_width // 2), '-'*door_width))

# The windows
w = '|__'*n
w = w[:4 + 2*i  - door_width // 2]
if w[-1] == '|':
    w = w[:-1] + '_'
w += '|'
p(w + ' '*door_width + w[::-1])
p(w + '_'*door_width + w[::-1])

# The foundation and the stairs
w = '#'*(4 + 2*i - door_width // 2)
p(w + '/' + '_'*(door_width) + '\\' + w)

# The remaining stairs
p('|' + '_'*(door_width + 2) + '|')
p('/' + '_'*(door_width + 4) + '\\')

1
আপনি পাইথন 2 ব্যবহার করছেন যেহেতু আপনি পরিবর্তন করতে পারেন print(B*(5+2*n-len(s)//2)+s)মধ্যে print B*(5+2*n-len(s)/2)+s(Remove প্রথম বন্ধনী এবং পরিবর্তন //মধ্যে /)।
ব্যবহারকারী 12205

1
ধন্যবাদ @ace, পাইথন 2 জানতেন না ভাসমান বিভাগ উপেক্ষা করা।
ম্যাটি

1
@ ম্যাটি এটি ভাসা বিভাজন উপেক্ষা করে না। আপনি পূর্ণসংখ্যার উপর বিভাগ সম্পাদন করছেন , সুতরাং ফলাফলটি পূর্ণসংখ্যা হয়। এটি কেবলমাত্র এক বা একাধিক অপারেটসগুলি ভাসমান হলে ভাসা বিভাগ করে does
mbomb007

2
আপনি ক্রম পুনর্বিন্যস্ত যদি print B*(5+2*n-len(s)/2)+sকরতে print(5+2*n-len(s)/2)*B+s, আপনি পরে স্থান অপসারণ করতে পারেন print
isaacg

4

জাভাস্ক্রিপ্ট ( ES6 ), 440

স্থির লিন্টেল বাগ সম্পাদনা করুন

পরামিতি হিসাবে উচ্চতা সহ একটি ফাংশন, কনসোল আউটপুট।

টেমপ্লেট স্ট্রিংটি অনেক ব্যবহার করে , সমস্ত নিউলাইনগুলি তাৎপর্যপূর্ণ এবং গণনা করা হয়।

ফায়ারফক্সে পরীক্ষা করার জন্য স্নিপেট চালান (কনসোল আউটপুট সহ)

f=x=>{R=(n,s=0)=>' #_-'[s][Z='repeat'](n),M=c=>R(2)+'|__'[Z](z+1).slice(0,z-1)+'_|'+R(y,c)+'|_'+'__|'[Z](z+1).slice(1-z)
for(z=x+x+(x<2)+(x<3),y=x>2?5:x>1?3:1,l=-1,o=`${t=R(x+x+5)}.
${t}|
`;l++<x;)o+=`${t=R(x+x-l-l)}.${u=R(l+3)}]${R(l*2+1,1)}[${u}.
 ${t}\\${l-x?R(7+l*4,2):`${t=R(x+1,2)}]${u=R(x<3||x-2,1)}.${R(y,3)}.${u}[${t}`}/
`;console.log(`${o+M(0)}
${M(2)}
${R(2)}${t=R(z,1)}/${u=R(y,2)}\\${t}
${R(1+z)}|__${u}|
${R(z)}/____${u}\\`)}

// TEST
f(1),f(2),f(3),f(4),f(5),f(6)
Output 1 to 6 in console

ইন্টারেক্টিভ পরীক্ষার জন্য অদম্য সংস্করণ:

// Not so golfed

f=x=>{
  R=(n,s=0)=>' #_-'[s].repeat(n); // base building blocks
  M=c=>R(2)+'|__'.repeat(z+1).slice(0,z-1)+'_|'+R(y,c)+'|_'+'__|'.repeat(z+1).slice(1-z); // manage door level

  z=x+x+(x<2)+(x<3); // door and stairs surroundings
  y=x>2?5:x>1?3:1; // door and stairs width
  
  o = `${R(x+x+5)}.\n${R(x+x+5)}|\n`; // top 
  for(l=-1;l++<x;)
    o += `${ // even row
      t=R(x+x-l-l) // left padding
    }.${
      u=R(l+3)
    }]${
      R(l*2+1,1)
    }[${
      u
    }.\n ${ // end even row, start odd row
      t // left padding
    }\\${
      l-x?R(7+l*4,2)
      :`${t=R(x+1,2)}]${u=R(x<3||x-2,1)}.${R(y,3)}.${u}[${t}` // if last row before the door, insert lintel 
    }/\n`;
  
  o += `${
    M(0) // door level row 1
  }\n${
    M(2) // door level row 2
  }\n${
    R(2)}${t=R(z,1)}/${u=R(y,2)}\\${t  // stairs row 1
  }\n${ 
    R(1+z)}|__${u  // stairs row 2
  }|\n${ 
    R(z)}/____${u // stairs row 3
  }\\`;
  
  out(o)
}

out=x=>O.innerHTML=x

f(3)
<input id=I value=3><button onclick='f(+I.value)'>-></button><br>
<pre id=O></pre>


2

হাস্কেল, 473 বাইট

g '\\'='/'
g '/'='\\'
g '['=']'
g ']'='['
g x=x
z=reverse
d=min 3
m n s=putStrLn$(6+2*n+1-length s)#' '++map g(z s)++tail s
n#c=replicate n c
t 0=".";t n=n#'#'++"["++(2+n)#' '++"."
r 0="|";r n=(2+2*n)#'_'++"/"
q n=d n#'-'++"."++max(n-2)1#'#'++"["++(n+1)#'_'++"/"
e i n=d n#i++"|_"++z(take(max(n+2)(2*n-1))(cycle"|__"))
b n=d n#'_'++"\\"++max(2*n)(3+n)#'#'
w i n=(d n+1+i)#'_'++["|","\\"]!!i
f n=mapM_(m n)$[u k|k<-[0..n],u<-[t,r]]++(t(n+1):map($n)[q,e ' ',e '_',b,w 0,w 1])

ঠিক আছে ধন্যবাদ. এখনই সঠিক দেখাচ্ছে
ড্যামিয়েন

আমার মনে হয় এখন ঠিক আছে। বিটিডব্লিউ, আপনার এন = 1 মাজারের
ড্যামিয়েন

হ্যাঁ, এখন কাজ করে। অতিরিক্ত অতিরিক্ত অনিচ্ছাকৃত স্থির করে#
অপটিমাইজার

0

সি, 660 বাইট

প্যাটার্নটি দেখে মনে হয়েছে যে অভিনব কিছু, বিশেষত স্ট্রিং প্রসেসিং ছাড়াই কোনও ভাষায় নিয়ে আসা খুব অনিয়মিত। সুতরাং এখানে আমার নিষ্ঠুর শক্তি পদ্ধতির:

m,d,w,k,j;r(n,c){for(j=0;j++<n;)putchar(c);}c(char*s){for(;*s;)putchar(*s++);}f(n){m=n*2;d=n<3?m-1:5;w=m-d/2+2;r(m+5,32);c(".\n");r(m+5,32);c("|\n");for(;;){r(m-k*2,32);c(".");r(k+3,32);c("]");r(k*2+1,35);c("[");r(k+3,32);c(".\n");if(k==n)break;r(m-k*2+1,32);c("\\");r(k++*4+7,95);c("/\n");}c(" \\");r(n+1,95);c("]");r(n-d/2,35);c(".");r(d,45);c(".");r(n-d/2,35);c("[");r(n+1,95);c("/\n");for(k=0;k<2;){c("  ");for(j=0;j<w/3;++j)c("|__");c("|_|"-w%3+2);r(d,k++?95:32);c(!w%3?"|":w%3<2?"|_":"|_|");for(j=0;j<w/3;++j)c("__|");c("\n");}c("  ");r(w,35);c("/");r(d,95);c("\\");r(w,35);c("\n");r(w+1,32);c("|");r(d+2,95);c("|\n");r(w,32);c("/");r(d+4,95);c("\\\n");}

গল্ফ করার আগে:

#include <stdio.h>

void r(int n, int c) {
    for (int i = 0; i++ < n; )
        putchar(c);
}

void c(char* s) {
    for (; *s; ++s) putchar(*s);
}

int f(int n) {
    int m = n * 2;
    int d = n < 3 ? m - 1 : 5;
    int w = m - d / 2 + 2;

    r(m + 5, 32);
    c(".\n");

    r(m + 5, 32);
    c("|\n");

    for (int k = 0; ; ++k) {
        r(m - k * 2, 32);
        c(".");
        r(k + 3, 32);
        c("]");
        r(k * 2 + 1, 35);
        c("[");
        r(k + 3, 32);
        c(".\n");

        if (k == n) break;

        r(m - k * 2 + 1, 32);
        c("\\");
        r(k * 4 + 7, 95);
        c("/\n");
    }

    c(" \\");
    r(n + 1, 95);
    c("]");
    r(n - d / 2 , 35);
    c(".");
    r(d, 45);
    c(".");
    r(n - d / 2 , 35);
    c("[");
    r(n + 1, 95);
    c("/\n");

    for (int k = 0; k < 2; ++k) {
        c("  ");
        for (int j = 0; j < w / 3; ++j)
            c("|__");
        c("|_|" - w % 3 + 2);
        r(d, k ? 95 : 32);
        c(!w % 3 ? "|" : w % 3 < 2 ? "|_" : "|_|");
        for (int j = 0; j < w / 3; ++j)
            c("__|");
        c("\n");
    }

    c("  ");
    r(w, 35);
    c("/");
    r(d, 95);
    c("\\");
    r(w, 35);
    c("\n");

    r(w + 1, 32);
    c("|");
    r(d + 2, 95);
    c("|\n");

    r(w, 32);
    c("/");
    r(d + 4, 95);
    c("\\\n");

    return 0;
}

এখানে ব্যাখ্যা করার মতো বেশি কিছু নেই। এটি কেবল রেখায় লাইনে যায় এবং প্রতিটি চরিত্রের প্রয়োজনীয় গণনা তৈরি করে। আমি কোডটি নিজেই কমপ্যাক্ট রাখার চেষ্টা করেছি, তবে এটি এখনও যুক্ত করে। dদরজা wপ্রস্থ, প্রতিটি ইটের প্রাচীর প্রস্থ।


1
c(char*s){for(;*s;)putchar(*s++);}==> #define c printf; r(n,c){for(j=0;j++<n;)putchar(c);}==>r(n,C){while(n--)putchar(C);}
ব্যবহারকারী 12205
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.