আমাকে একটি টাওয়ার ব্লক প্রিন্ট করুন


16

সংক্ষিপ্ততম কোড সহ একটি টাওয়ার ব্লক প্রিন্ট করুন।

ইনপুট:

ইনপুটটি নির্ধারণ করে যে টাওয়ার ব্লকের কত তলা রয়েছে। এক তলায় দরজার দু'পাশে একটি জানালা রয়েছে। উইন্ডোটি 3x3 হ্যাশ দিয়ে তৈরি।

একটি 4 তলা টাওয়ার ব্লকের উদাহরণ নীচে:

      =====================
      )V V V V V V V V V V(
     )V V V V V V V V V V V(
    )V V V V V V V V V V V V(
   )V V V V V V V V V V V V V(
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   : : : : : : : : : : : : : :
   : : ### : : : : : : ### : :
   : : ### : : : : : : ### : :
   : : ### : : : : : : ### : :
   : : : : : : : : : : : : : :
   : : : : : : : : : : : : : :
   : : ### : : : : : : ### : :
   : : ### : : : : : : ### : :
   : : ### : : : : : : ### : :
   : : : : : : : : : : : : : :
   : : : : : : : : : : : : : :
   : : ### : : : : : : ### : :
   : : ### : : : : : : ### : :
   : : ### : : : : : : ### : :
   : : : : : : : : : : : : : :
   : : : : : _______ : : : : :
   : : ### : I     I : ### : :
   : : ### : I     I : ### : :
   : : ### : I     I : ### : :
   : : : : : I     I : : : : :

হালনাগাদ:

ইনপুটটি এক বা তার বেশি হতে হবে।

লাইনের শেষে ট্রেলিং স্পেসগুলি অনুমোদিত।

আমার উদাহরণে, প্রতিটি লাইনের তিনটি প্রধান স্থান রয়েছে has এটি বাধ্যতামূলক নয়, কেবল ইনপুট সহ টাওয়ার ব্লক।


2
ইনপুট কি 1 এর চেয়ে কম হতে পারে?
nmjcman101

2
লাইনের শেষে ফাঁকা স্থানগুলি কি অনুমোদিত?
নেজিনিসিস

আপনার প্রশ্নের জন্য ধন্যবাদ - আমার প্রশ্নে আপডেট দেখুন।
বেলফিল্ড

উত্তর:


6

ভি , 72 বাইট

13iV r(É)3ñįlxñÄ21r=GÙÒ~Ù14R: ÙÄ2w3r#7w.3ÄkdGÀpG4k5w7r_bêojrIÎfIl5r 

এটি অনলাইন চেষ্টা করুন!

এখানে একটি হেক্সডাম্প রয়েছে, যেহেতু এটিতে অরক্ষিত অক্ষর রয়েছে:

00000000: 3133 6956 201b 7228 c929 33f1 c4af 6c78  13iV .r(.)3...lx
00000010: f1c4 3231 723d 47d9 d27e d931 3452 3a20  ..21r=G..~.14R: 
00000020: 1bd9 c432 7733 7223 3777 2e33 c46b 6447  ...2w3r#7w.3.kdG
00000030: c070 4734 6b35 7737 725f 1662 ea6f 6a72  .pG4k5w7r_.b.ojr
00000040: 49ce 6649 6c35 7220                      I.fIl5r

আমি দৌড়ে গেলাম এক অদ্ভুত বাগ। মাঝের অংশটি: dGÀpGহওয়া উচিত ছিল: ÀäGGতবে এটি 1 ইনপুটগুলির জন্য কাজ করে না, এবং কেন তা আমার কোনও ধারণা নেই।¯\_(ツ)_/¯


8

গণিত, 301 288 258 বাইট

" "~(s=If[#2==0,"",#~StringRepeat~#2]&)~3<>{"="~s~21,"
",s[" ",12-#]<>{")","v "~s~#,"v(
"}&/@9~Range~12,"~"~s~27,"
",s[(x=(u=": ")~s~13<>":
")<>{y=u<>{z=": ### ",v=u~s~5,w=z<>": :
"},y,y,x},#-1],v,"_"~s~7," ",v,"
",m=u<>{z,u,n="I     I ",w},m,m,v,n,w}&

খাঁটি ফাংশন যা একটি ধনাত্মক পূর্ণসংখ্যা নেয় এবং একটি স্ট্রিং আউটপুট দেয়। আউটপুট স্ট্রিং সঠিক দেখাবে না কারণ ম্যাথমেটিকা ​​দৃশ্যত মনোস্পেস ফন্টগুলি মনোস্পেস হিসাবে প্রদর্শন করে না:

এখানে চিত্র বর্ণনা লিখুন

যে কারণে আমি বেশ বুঝতে পারি না, এটি যদি Printস্ট্রিং করে তবে এটি মনোস্পেস হিসাবে ফর্ম্যাট করে :

এখানে চিত্র বর্ণনা লিখুন

সম্পাদনা করুন: " "প্রতিটি লাইনের শুরুতে অন্তর্ভুক্ত না করে বেশ কয়েকটি বাইট সংরক্ষণ করা হয়েছে । sকেবলমাত্র একটি তল রয়েছে এমন কেসটি পরিচালনা করার সংজ্ঞা বদলেছে ( StringRepeatস্ট্রিংয়ের 0সময় পুনরাবৃত্তি করা পছন্দ করে না )।

সম্পাদনা করুন 2: ধন্যবাদ LegionMammal978 এবং সত্য যে StringJoinহয় Listable, এই এখন নেস্টেড তালিকার একটি ধারণাতীত দুঃস্বপ্ন এবং 30 খাটো বাইট।


1
অন্তত 26 বাইট প্রতিস্থাপন সংরক্ষণ করা যাবে a<>b<>...<>xসঙ্গে a<>{b,...,x}কিছু অংশে।
LegionMammal978 21

4

পাইথন 2 , 275 270 262 246 240 236 বাইট

@ Flp.Tkc এর ইঙ্গিত সহ এবং লুপের জন্য প্রথমটি পরিবর্তন করে একটি দম্পতি সংরক্ষণ করেছেন।

16 Flp.Tkc থেকে আরও সহায়তায় সংরক্ষণ করা হয়েছে

a,h,b,c,w=' ',"I  ",": "," :","#"*3;d,e,j=b*2+w+a+b+h,b*5+h,[b*14]
print'\n'.join([a*3+'='*21]+[a*(4-x)+')'+'V '*(x+8)+'V('for x in 1,2,3,4]+['-'*27]+(j+[b*2+w+c*6+a+w+c*2]*3+j)*(input()-1)+[b*5+"_"*7+c*5]+[d+a+d[::-1]]*3+[e+a+e[::-1]])

এটি অনলাইন চেষ্টা করুন!

টাওয়ারের প্রতিটি লাইনকে কেবল স্ট্রিং হিসাবে তৈরি করে এবং একটি অ্যারেতে যুক্ত করে তারা শেষে অ্যারেটি মুদ্রণ করে। যদি কেউ পুরো ব্যাখ্যা চায় তবে আমি কীভাবে কাজ করে তা মনে করতে পারি তবে আমি কুরুচিপূর্ণভাবে দিতে পারি ☺


3

পাওয়ারশেল , 193 বাইট

"   "+"="*21
3..0|%{" "*$_+")"+"V "*(12-$_)+"V("}
"~"*27
--$args[0]..0|%{($b=": "*5)+(($a=": "*4),'_______ ')[!$_]+$b;,(': : ### : '+($a,($c='I     I '))[!$_]+': ### : :')*3;$b+($a,$c)[!$_]+$b}

এটি অনলাইন চেষ্টা করুন!

(আমার মনে হয় এখানে বা সেখানে কয়েকটি বাইট এখনও থাকতে পারে Sub সাব-190 টি করণীয় মনে হয়))

প্রথম তিনটি লাইন ছাদটি গঠন করে, স্ট্রিং গুণ এবং সংমিশ্রণ ব্যবহার করে, একটি লুপ সহ 3..0|%{...}সঠিক নম্বর এবং Vএস এর opালু প্রাপ্ত হয় ।

পরবর্তী লাইনটি ইনপুট থেকে --$args[0]নিচে প্রাক-হ্রাস করে 0একটি লুপ হিসাবে চলে (প্রাক-হ্রাস আমাদের পরে কয়েকটি বাইট সংরক্ষণ !$_না করে ব্যবহার করে সূচকে অনুমতি দেয় $_-eq1)। প্রতিটি লুপ পুনরাবৃত্তি, আমরা স্ট্রিং একটি গুচ্ছ নির্মাণ করছি, ভেরিয়েবল সেট$b এবং $aপথে। আমরা (... , ...)[...]মাঝখানে উপযুক্ত স্ট্রিংগুলি বেছে নিতে সিউডো-টের্নারিগুলিও ব্যবহার করছি যাতে আমরা প্রথম তলায় প্রবেশদ্বারটি সঠিকভাবে পেতে পারি।

প্রতিটি স্ট্রিং পাইপলাইনে পৃথকভাবে ছেড়ে যায় এবং ডিফল্ট এর Write-Outputমধ্যে নতুন লাইন সন্নিবেশ করে, তাই আমরা সেগুলি বিনামূল্যে পাই for


3

টি-এসকিউএল, 378 372 353 331 325 বাইট

Golfed:

DECLARE @ INT=3

,@h varchar(max)=REPLICATE('~',27)SELECT @h+='
: '+a+IIF(n>@*5-6,IIF(n%5=0,'_______ ','I     I '),t)+a+':'FROM(SELECT
IIF(n%5%4=0,t,': ### : ')a,*FROM(SELECT': : : : 't,number n,*FROM spt_values)x)y
WHERE type='P'and n<@*5SET @=0WHILE @<4SELECT
@h=SPACE(@)+')'+REPLICATE('V ',12-@)+'V(
'+@h,@+=1PRINT'   '+REPLICATE('=',21)+'
'+@h

Ungolfed:

DECLARE @ INT=3

,@h varchar(max)=REPLICATE('~',27)
SELECT @h+='
: '+a+IIF(n>@*5-6,IIF(n%5=0,'_______ ','I     I '),t)+a+':'
FROM
(SELECT IIF(n%5%4=0,t,': ### : ')a,*
FROM
(SELECT': : : : 't,number n,*
FROM spt_values)x)y
WHERE type='P'and n<@*5
WHILE @>=0
  SELECT @h=SPACE(3-@)+')'+REPLICATE('V ',9+@)+'V(
'+@h,@-=1
PRINT'   '+REPLICATE('=',21)+'
'+@h

চেষ্টা কর


2

সি, 409 406 402 বাইট

#define P(x)p(": ",x);
#define S(x)p(x,1);
#define L P(2)p("#",3);p(" :",6);S(" ###");S(" : :\n")
#define Q p("V ",i+++9)
p(s,n)char*s;{printf(s,--n?p(s,n):0);}i;t(n){p(" ",3);p("=",21);S("\n   )")Q;S("V(\n  )")Q;S("V(\n )")Q;S("V(\n)")Q;S("V(\n")p("~",27);S("\n")for(;--n;){P(13)S(":\n")L;L;L;P(13)S(":\n")}P(5)p("_",7);p(" :",5);S("\n")p(": : ### : I     I : ### : :\n",3);P(5)S("I     I")p(" :",5);}

সাথে কল করুন:

int main()
{
    t(4);
}

1

ব্যাচ, 373 বাইট

@echo off
set s=###
echo    %s:#========%
for %%s in ("   )" "  )V " " )V V " ")V V V ")do echo %%~sV%s:#= V V V%(
echo %s:#=~~~~~~~~~%
set t=: : ### : I     I : ### : :
set s=%t:I     I=: : : :%
for /l %i in (2,1,%1)do echo %s:###=: :%&echo %s%&echo %s%&echo %s%&echo %s:###=: :%
set s=%t:###=: :%
echo %s:I     I=_______%
echo %t%
echo %t%
echo %t%
echo %s%

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


1

জাভাস্ক্রিপ্ট, 335 বাইট

y=z=>{a="   "+"=".repeat(21);for(b=9;13>b;b++)a+="\n"+" ".repeat(12-b)+")"+"V ".repeat(b)+"V(";a+="\n"+"~".repeat(27);b="\n"+": ".repeat(14);c=": : ### : : : : : : ### : :";for(d=0;d<z-1;d++)a+=b+"\n"+c+"\n"+c+b;a+="\n: : : : : _______ : : : :\n"+": : ### : I     I : ### : :\n".repeat(3)+": : : : : I     I : : : : :";console.log(a)};

y()যুক্তি দিয়ে zএমন একটি ফাংশন তৈরি y(z)করে যা পছন্দসই আউটপুট তৈরি করে।

ব্যবহারের উদাহরণ:

y=z=>{a="   "+"=".repeat(21);for(b=9;13>b;b++)a+="\n"+" ".repeat(12-b)+")"+"V ".repeat(b)+"V(";a+="\n"+"~".repeat(27);b="\n"+": ".repeat(14);c=": : ### : : : : : : ### : :";for(d=0;d<z-1;d++)a+=b+"\n"+c+"\n"+c+b;a+="\n: : : : : _______ : : : :\n"+": : ### : I     I : ### : :\n".repeat(3)+": : : : : I     I : : : : :";console.log(a)};

console.log(y(3));

আমি স্বাভাবিক জাভাস্ক্রিপ্ট থেকে কোড-গল্ফ জেএস এ রূপান্তর করছি। যেকোনো ধরণের উপদেশ গ্রহণযোগ্য হবে.


1

ক্যানভাস , 62 61 বাইট

⁶=⁵×V7× * )×4*∔/‾²m~7«× ×∔│8 ×:*5*#33*62╋│⁸*∔l4-_7× 5×Ie4*∔╋╋

এখানে চেষ্টা করুন! ইনপুট 0 এটি প্রয়োজনীয় না হলেও প্রত্যাশার মতো কাজ করে।


আরে, এই স্ক্রিপ্টটি ব্যবহার করে বাড়ির উচ্চতা কীভাবে পরিবর্তিত হবে?
t-clausen.dk

আমার পুরানো চোখগুলি ডান বাক্সের নম্বরটি মিস করেছে
t-clausen.dk
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.