একটি টর্নেডো নির্মাণ করুন


31

আমার মতে, একটি টর্নেডো দেখে মনে হচ্ছে:

########
#######
 ######
  #####
   ####
   ###
    ##
     #

এই টর্নেডো প্রস্থ দিয়ে শুরু হয় nএবং প্রতিটি পরবর্তী লাইনে ইনপুটটির উপর নির্ভর করে একটি অক্ষর বাম বা ডান থেকে সরানো হয়।

ইনপুট

ইনপুটটি কোনও কোনও দুটি অনন্য মানের (যে কোনও দুটি অনন্য বর্ণের একটি স্ট্রিং খুব কার্যকরভাবে কাজ করে) এর তালিকা এবং প্রস্থকে সূচনা করার জন্য একটি indicateচ্ছিক ধনাত্মক পূর্ণসংখ্যার তালিকা হবে। যদি alচ্ছিক পূর্ণসংখ্যার ব্যবস্থা না নেওয়া হয় তবে প্রারম্ভিক প্রস্থ তালিকার দৈর্ঘ্যের চেয়ে 1 টি বেশি। শুরু প্রস্থ হতে দিন n

টর্নেডো কীভাবে তৈরি করবেন

আমার উদাহরণে আমি আমার তালিকাটি 1গুলি ও 0গুলি ধারণ করতে বেছে নিই , যদিও আপনি কোনও দুটি স্বতন্ত্র ধ্রুবক মান বা কোনও দুটি স্বতন্ত্র ধ্রুবক অক্ষরের একটি স্ট্রিং বেছে নিতে পারেন।

প্রথম সারিতে nশ্বেতস্থান অক্ষর থাকবে (আপনি কোনও সামঞ্জস্যপূর্ণ চরিত্র চয়ন করতে পারেন; আমি #আমার উদাহরণ হিসাবে বেছে নিই)।

তারপরে তালিকার প্রতিটি সংখ্যার জন্য যদি সংখ্যাটি থাকে 0তবে বাম অক্ষরটি সরিয়ে একটি নতুন সারি তৈরি করুন; যদি এটি হয় 1তবে ডান অক্ষরটি সরিয়ে একটি নতুন সারি তৈরি করুন।

সুতরাং, উপরের টর্নেডোটি আউটপুট 8, [1, 0, 0, 0, 1, 0, 0]

আউটপুট

আউটপুট স্ট্রিংগুলির একটি তালিকা, অক্ষরের তালিকাগুলির একটি তালিকা বা একাধিক স্ট্রিং হতে পারে। প্রতিটি লাইনে শ্বেত স্পেস অনুসরণ করার অনুমতি দেওয়া হয়, এবং শেষের দিকে একটি পিছনে নতুন লাইনের অনুমতি দেওয়া হয়।

পরীক্ষার মামলা

এই পরীক্ষাগুলিগুলির প্রারম্ভিক প্রস্থ এবং এর ব্যবহারের তালিকা অন্তর্ভুক্ত রয়েছে 1, 0

5, [1,0,0,1]

#####
####
 ###
  ##
  #

10, [1,0,0,1,0,1,0,0,1]

##########
#########
 ########
  #######
  ######
   #####
   ####
    ###
     ##
     #

7, [1,1,1,1,1,1]

#######
######
#####
####
###
##
#

100,
 [1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,0,1,0,0,1,1,0,1,1,1,1,0,1,0,1,1,0,0,1,0,1,1,0,0,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1,0,1,0,0,1,1,0,0,0,0,1]

দীর্ঘ পরীক্ষার মামলা

বিধি

  • স্ট্যান্ডার্ড লুফোলস প্রযোজ্য
  • বাইটের মধ্যে সংক্ষিপ্ততম কোড জয়!
  • পটভূমি কোনও স্থান হতে হবে না (আমি এটি আগে উল্লেখ করতে ভুলে গিয়েছিলাম)।
  • আপনার ভাষাতে কেবলমাত্র এমন সংখ্যা (প্রস্থ) সমর্থন করতে পারে যা এটি পরিচালনা করতে পারে তবে আপনার দোভাষী যদি আরও বড় সংখ্যার আকার দিয়ে আবার লিখতেন তবে এটি তাত্ত্বিকভাবে কাজ করতে হবে।

রেফারেন্স বাস্তবায়ন


3
আপনার উদাহরণগুলি থেকে মনে হয় যে শুরুটি সর্বদা তালিকার দৈর্ঘ্যের চেয়ে 1 টি বড় হতে চলেছে। আমাদের এমন উদাহরণ থাকতে পারে যেখানে এটি না? শুরু প্রস্থ তালিকার দৈর্ঘ্যের চেয়ে কম হতে পারে?
চার্লি

@ কার্লোস আলেজো না ... এটির কোনও অর্থ নেই কারণ এরপরে আপনার কাছে শেষ করার মতো পর্যাপ্ত উপাদান থাকবে না ...
হাইপারনিউট্রিনো

4
@ হাইপার নিউট্রিনো যে চশমাটি ব্যবহার করেছিলেন তার প্রথম টর্নেডোটি দেখেছে
ম্যাজিক অক্টোপাস

@ ম্যাজিক অ্যাক্টোপাস উর্ন ... লোল
হাইপারনিউট্রিনো

উত্তর:



9

পাইথন 2 , 66 59 বাইট

-7 বাইট আর্নল্ড পামারকে ধন্যবাদ

x,z=input()
for i in range(x):print' '*sum(z[:i])+'#'*(x-i)

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

0ডান 1থেকে অপসারণ করতে, বাম থেকে অপসারণ করতে


1
নিনজা আমাকে: ((
কাইশোর রায়

একই মানুষ এখানে: /
আর্নল্ড পামার

প্রতিস্থাপন 7 বাইট সংরক্ষণ len(z)+1সঙ্গে xযদি "ঐচ্ছিক ধনাত্মক পূর্ণসংখ্যা" অর্থ আপনি এটি ব্যবহার করতে হবে না। প্রশ্নের শব্দটি এটিকে শোনায় যেহেতু এটি বলে যে "যদি alচ্ছিক পূর্ণসংখ্যা নেওয়া হয় না" বনাম "alচ্ছিক পূর্ণসংখ্যা না দেওয়া হয়"।
আর্নল্ড পামার

6

vim, 85 82 বাইট

o"cp:s/#/ <C-v><CR>0"cy$<ESC>"ayy7hR$/<ESC>"bdd:s/[][, ]\+/<C-v><CR>@/g<CR>ggAa#<C-v><ESC><ESC>^D@"^"cy$:2,$:norm D@"

<ESC>0x1B হয়, <CR>হয় 0x0D, <C-v>0x16 হয়। এবং <ESC>OHহোম কী উপস্থাপন করে এমন একটি মাল্টিবাইট ক্রম।

ইনপুটটি a"বাম সরান" মান এবং b"ডান সরান" মান হিসাবে ব্যবহার করে।

" @a will remove from the left; @b will remove from the right.
o"cp:s/#/ <C-v><CR>0"cy$<ESC>"ayy
7hR$/<ESC>"bdd

" split the input into digestible chunks
:s/[][, ]\+/<C-v><CR>@/g<CR>
gg

" Create the first line
Aa#<C-v><ESC><ESC>
^D
@"^"cy$

" Create tornado
:2,$:norm D@"

দুর্ভাগ্যক্রমে টিআইওর কোনও লিঙ্ক নেই। টর্নেডো.ভিম (প্রতিস্থাপন <ESC>, ইত্যাদি তাদের আসল বাইটের সাহায্যে) কোড অনুলিপি করে এবং নীচে চালিয়ে আমি ভি. টেস্টের অধীনে এটি কাজ করতে পারি না :

$ echo '8, [b, a, a, a, b, a, a]' > a.txt
$ { cat tornado.vim; echo ':wq'; } | vim a.txt
$ cat a.txt

নীলের পরামর্শের কারণে -3 বাইট।


আপনি কি ^পরিবর্তে ব্যবহার করতে পারবেন না ␛OH?
নীল

@ নীল ^প্রথম অ-ফাঁকা চরিত্রটিতে যায়। ␛OHপ্রথম চরিত্রে যায়।
রায়

1
আহ, দুঃখিত, আমি বোঝাতে 0চাইনি ...
নীল

@ নীল এই ক্ষেত্রে, হ্যাঁ, আমার এটি করা উচিত। ধন্যবাদ।
রায়

5

05 এ বি 1 , 11 9 বাইট

-২ বাইটস এরিক দি আউটগলফারকে ধন্যবাদ

0×=²v¨yú=

বাম থেকে 1
সরান: ডান থেকে সরান:0

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

0×        # Make a string of n 0s
  =       # Print without popping
   ²v     # For each character in input (call it y):
     ¨    #   Remove the last character of the current string
      yú  #   Pad with y spaces
        = #   Print without popping

0×ηsηOঅনেক সম্ভাবনা আছে তবে আমি 11 বাইটের নিচে এটি বের করতে পারি না।
ম্যাজিক অক্টোপাস উরান

পরবর্তী সংস্করণটি রাখুন এবং -2 এর ðy×ìসাথে প্রতিস্থাপন করুন
এরিক আউটগল্ফার

4

রেটিনা , 30 28 বাইট

.?
$`#$&$'¶
T`d`#`#.*
T`d` _

এটি অনলাইন চেষ্টা করুন! কেবল 0 ও 1 এর স্ট্রিং নেয় এবং স্ট্রিংয়ের উপর ভিত্তি করে প্রস্থের গণনা করে। ব্যাখ্যা: প্রথম পর্যায়ে ইনপুট স্ট্রিং নেয় এবং প্রতিটি সীমানা পয়েন্টের জন্য একবারে এটি নকল করে, #সেই সময়ে একটি সন্নিবেশ করানো হয়। দ্বিতীয় পর্যায়ে ত্রিভুজটি তৈরি করে #আরও বেশিগুলির পরে সমস্ত অঙ্ক পরিবর্তন হয় #। তৃতীয় স্তম্ভটি তারপরে বাকি সমস্তগুলি মুছে ফেলে এবং শূন্যগুলিকে স্পেসে পরিবর্তন করে যা টর্ন্ডাওর "ডুবিয়ে" দেয়।


3

জে, 32 বাইট

' #'#~[:(],.1+i.@-@#)0,(+/\@:-.)

ungolfed

' #'#~ [: ( ] ,. 1+i.@-@# )  0 , (+/\ @: -.)

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


19 বাইট ' #'#~0(,.#\.)@,+/\, যেখানে ইনপুটটি নমুনা থেকে বিপরীত হয় যেহেতু চ্যালেঞ্জ আপনাকে দুটি স্বতন্ত্র মান চয়ন করতে দেয়।
মাইল

এটি এবং আপনার অন্যান্য মন্তব্যের জন্য @ মাইলস টায়। তাদের সত্যই প্রশংসা করুন এবং দয়া করে তাদের আসতে দিন।
জোনা


3

আর , 85 82 বাইট

3 বাইট জিউসেপ্পিকে ধন্যবাদ রক্ষা করেছে

function(n,l)for(k in 1:n)cat(rep(" ",sum(c(0,l)[1:k])),rep("%",n-k+1),"
",sep="")

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

ব্যাখ্যা:

function(n,l){
  for(k in 1:n){                      # Proceed line by line
    cat(                              # Concatenate...
        rep(" ",sum(c(0,l)[1:k])),    # ...required number of leading spaces,...
        rep("%",n-k+1),               # ...required number of tornado characters...
        "\n",                         # ...and a new line.
        sep=""                        # Join without spaces
        )
  }
}

আমি জানতাম যে ম্যাট্রিক্স তৈরি করা সেরা বিকল্প নয়!
জিউসেপ

1
82 বাইট - {}শেভ করে এবং এর পরিবর্তে একটি আক্ষরিক নিউলাইন ব্যবহার করেছিল'\n'
জিউস্পে

3

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

h n=scanl(\s i->[(' ':),id]!!i$init s)$'#'<$[1..n]

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

যদি ইনপুট তালিকাটি ফাংশন নামের একটি তালিকা হতে পারে তবে আমরা একটি বাইট সংরক্ষণ করতে পারি

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

f=id
g=(' ':)
h n=scanl(flip id.init)$'#'<$[1..n]

ব্যবহারের উদাহরণ: h 5 [g,f,f,g]

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

কিভাবে এটা কাজ করে:

           '#'<$[1..n]   -- build the first line of the tornado, i.e. n times '#'
scanl(    )              -- repeatedly apply the given function to the starting
                         -- value and the next element of the input list and
                         -- return a list of the intermediate results
  \s i->                 -- the function takes a string s and a number i
            init s       -- and first drops the last element of s
      [    ]!!i          -- and then picks and apply a funtion from the list
        (' ':)           --  i = 0:  prepend a space
        id               --  i = 1:  do nothing

2

পাইথন 2, 58 57 বাইট

সম্পাদনা করুন: এক্সনোরকে ধন্যবাদ 1 বাইট

l,a=input()
s="#"*l
for i in a+[0]:print s;s=" "*i+s[:-1]

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

বাম থেকে 1 অপসারণ করতে, ডান থেকে অপসারণ করতে 0।


1
আমি মনে করি আপনি s=" "*i+s[:-1]বাম এবং ডান অদলবদল করতে পারেন ।
xnor

2

আর , 116 109 102 বাইট

-5 বাইট ব্যবহারকারীর কাছে ধন্যবাদ 2390246 (এবং অন্য 2 টি আমি নিজেকে বাঁচিয়েছি)

ব্যবহারকারী 2390246 দ্বারা আউটগল্ফড

function(n,l){k=cumsum
m=matrix(' ',n,n)
for(i in 1:n)m[k(c(1,!l))[i]:k(c(n,-l))[i],i]='#'
write(m,'',n,,'')}

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

রিটার্নস একটি বেনামী ফাংশন যা লাগে nএবং একটি ভেক্টর lদিয়ে 0বাম দিক থেকে সরানোর জন্য এবং 1ডান দিক থেকে সরানোর জন্য, এবং কপি করে প্রিন্ট অধিকার ফর্ম্যাটিং সহ কনসোলে ফলাফল।


1
আপনি লাইনটির শেষ গণনা করতে কিছুটা সাশ্রয় করতে পারেন যেহেতু আপনি জানেন যে #s এর সংখ্যা n-i + 1 হবে: অনলাইনে চেষ্টা করে দেখুন! যদিও আপনি কিছুটা ম্যাট্রিক্স তৈরির
/

@ ব্যবহারকারী 2390246 খুব সুন্দর! আমি আরও এক জোড়া বাইট শেভ করতে পেরেছি :)
জিউস্পে

2

জাপট , 14 13 বাইট

-1 বাইট @ETH ধন্যবাদ

å+ uP £X+QpV´

ইনপুট হ'ল অ্যারে, তারপরে আকার। এরে মান ""বা " ", যা ডান দিক থেকে অপসারণ বা বাম যথাক্রমে প্রতিনিধিত্ব করে। এর "পরিবর্তে ব্যবহার করে #এবং স্ট্রিংগুলির অ্যারে হিসাবে ফিরে আসে।

এখানে ধারণাটি প্রথম প্রতিটি লাইনের জন্য বাম প্যাডিংয়ের একটি অ্যারে তৈরি করা হয়েছিল, সুতরাং ইনপুট স্ট্রিংগুলি। তারপরে, প্রতিটি লাইনে "এস যুক্ত হয়ে যায়, এটি ব্যবহার করে যে এস এর পরিমাণ "প্রতিবার 1 দ্বারা হ্রাস পায়।

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

এইগুলি -Rনতুন লাইনের সাথে যুক্ত হয়ে আউটপুট ফর্ম্যাট করতে পতাকা ব্যবহার করে ।

ব্যাখ্যা

å+ uP £X+QpYnV

অন্তর্ভুক্ত: U= ইনপুট অ্যারে, V= ইনপুট নম্বর।

å+ uP

সংক্ষিপ্তভাবে åস্ট্রিং কনটেনটেশন ( +) সহ ইনপুট অ্যারে ( ) হ্রাস করুন । এটি হ্রাসের প্রতিটি মধ্যবর্তী মানের অ্যারেতে ফলাফল করে। তারপরে, অ্যারেতে ( u) একটি খালি স্ট্রিং ( P) প্রিপেন্ড করুন।

£X+

£প্রতিটি মান নিজেই মানচিত্র করুন ( X) এর সাথে সম্মিলিত ...

QpV´

উদ্ধৃতি চরিত্র ( Q) পুনরাবৃত্তি ( p) V--( ) বার। এটিও Vপ্রতিবার হ্রাস পায় ।


ভাল একটা. আমার মনে হয় আপনি পরিবর্তন করে একটি বাইট সংরক্ষণ করতে পারবেন YnVকরার
ETHproductions

@ ইথ প্রডাকশনগুলি দুর্দান্ত, ধন্যবাদ! আমি পুরোপুরি ব্যবহার করতে ++বা --জাপটে ভুলে গেছি ।
জাস্টিন মেরিনার

2

আর্নল্ডসি , 3132 বাইট

আর্নল্ডসির স্ট্রিং কনটেনটেশন নেই, সুতরাং এটি একটি টর্নেডো তৈরি করে 8এবং 1এটি স্পেস আউট করার জন্য এস ব্যবহার করে। আর্নল্ডসি কেবলমাত্র 16-বিট পূর্ণসংখ্যার সমর্থন করে, সুতরাং এটি 7 ডিজিটেরও বেশি দীর্ঘ ইনপুট দিয়ে প্রবাহিত হবে। (সুতরাং এটি কেবল মিনি টর্নেডো তৈরি করবে)

1বামে রয়েছে, অন্য কোনও অঙ্ক ঠিক আছে (যদিও আমি এটি প্রস্তাব করব না 0, যেহেতু আপনি এটি দিয়ে শুরু করতে পারবেন না))

ইনপুট: 1221122

আউটপুট:

88888888
18888888
18888881
18888811
11888811
11188811
11188111
11181111

গল্ফ কোড:

IT'S SHOWTIME
HEY CHRISTMAS TREE d
YOU SET US UP 0
HEY CHRISTMAS TREE e
YOU SET US UP 0
HEY CHRISTMAS TREE m
YOU SET US UP 0
GET YOUR ASS TO MARS m
DO IT NOW
I WANT TO ASK YOU A BUNCH OF QUESTIONS AND I WANT TO HAVE THEM ANSWERED IMMEDIATELY
HEY CHRISTMAS TREE l
YOU SET US UP 0
GET YOUR ASS TO MARS l
DO IT NOW g m
DO IT NOW h l m
YOU HAVE BEEN TERMINATED
LISTEN TO ME VERY CAREFULLY g
I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE m
GIVE THESE PEOPLE AIR
HEY CHRISTMAS TREE i
YOU SET US UP 2
HEY CHRISTMAS TREE n
YOU SET US UP m
STICK AROUND n
GET TO THE CHOPPER n
HERE IS MY INVITATION n
HE HAD TO SPLIT 10
ENOUGH TALK
BECAUSE I'M GOING TO SAY PLEASE n
GET TO THE CHOPPER i
HERE IS MY INVITATION i
GET UP 1
ENOUGH TALK
YOU HAVE NO RESPECT FOR LOGIC
CHILL
I'LL BE BACK i
HASTA LA VISTA, BABY
LISTEN TO ME VERY CAREFULLY h
I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE l
I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE m
GIVE THESE PEOPLE AIR
HEY CHRISTMAS TREE o
YOU SET US UP -2
GET TO THE CHOPPER o
HERE IS MY INVITATION o
GET UP l
ENOUGH TALK
HEY CHRISTMAS TREE k
YOU SET US UP 1
STICK AROUND o
GET TO THE CHOPPER k
HERE IS MY INVITATION k
YOU'RE FIRED 10
ENOUGH TALK
GET TO THE CHOPPER o
HERE IS MY INVITATION o
GET DOWN 1
ENOUGH TALK
CHILL
HEY CHRISTMAS TREE p
YOU SET US UP 0
HEY CHRISTMAS TREE f
YOU SET US UP 0
HEY CHRISTMAS TREE i
YOU SET US UP 0
HEY CHRISTMAS TREE q
YOU SET US UP l
HEY CHRISTMAS TREE d
YOU SET US UP 0
HEY CHRISTMAS TREE e
YOU SET US UP 1
HEY CHRISTMAS TREE a
YOU SET US UP 0
HEY CHRISTMAS TREE b
YOU SET US UP 0
HEY CHRISTMAS TREE c
YOU SET US UP l
STICK AROUND q
GET TO THE CHOPPER i
HERE IS MY INVITATION 0
ENOUGH TALK
GET TO THE CHOPPER a
HERE IS MY INVITATION d
ENOUGH TALK
GET TO THE CHOPPER b
HERE IS MY INVITATION e
ENOUGH TALK
GET TO THE CHOPPER c
HERE IS MY INVITATION l
ENOUGH TALK
STICK AROUND c
BECAUSE I'M GOING TO SAY PLEASE a
GET TO THE CHOPPER i
HERE IS MY INVITATION i
GET UP 1
YOU'RE FIRED 10
ENOUGH TALK
GET TO THE CHOPPER a
HERE IS MY INVITATION a
GET DOWN 1
ENOUGH TALK
BULLSHIT
GET TO THE CHOPPER f
HERE IS MY INVITATION b
LET OFF SOME STEAM BENNET c
ENOUGH TALK
BECAUSE I'M GOING TO SAY PLEASE f
GET TO THE CHOPPER i
HERE IS MY INVITATION i
GET UP 1
YOU'RE FIRED 10
ENOUGH TALK
BULLSHIT
GET TO THE CHOPPER i
HERE IS MY INVITATION i
GET UP 8
YOU'RE FIRED 10
ENOUGH TALK
YOU HAVE NO RESPECT FOR LOGIC
YOU HAVE NO RESPECT FOR LOGIC
GET TO THE CHOPPER c
HERE IS MY INVITATION c
GET DOWN 1
ENOUGH TALK
CHILL
GET TO THE CHOPPER i
HERE IS MY INVITATION i
HE HAD TO SPLIT 10
ENOUGH TALK
TALK TO THE HAND i
GET TO THE CHOPPER q
HERE IS MY INVITATION q
GET DOWN 1
ENOUGH TALK
GET TO THE CHOPPER p
HERE IS MY INVITATION m
HE HAD TO SPLIT k
I LET HIM GO 10
ENOUGH TALK
GET TO THE CHOPPER k
HERE IS MY INVITATION k
HE HAD TO SPLIT 10
ENOUGH TALK
GET TO THE CHOPPER f
HERE IS MY INVITATION p
YOU ARE NOT YOU YOU ARE ME 1
ENOUGH TALK
BECAUSE I'M GOING TO SAY PLEASE f
GET TO THE CHOPPER d
HERE IS MY INVITATION d
GET UP 1
ENOUGH TALK
BULLSHIT
GET TO THE CHOPPER e
HERE IS MY INVITATION e
GET UP 1
ENOUGH TALK
YOU HAVE NO RESPECT FOR LOGIC
CHILL
I'LL BE BACK i
HASTA LA VISTA, BABY

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

অরোগল্ফড কোড (5178 বাইট):

IT'S SHOWTIME
    HEY CHRISTMAS TREE left
        YOU SET US UP 0
    HEY CHRISTMAS TREE right
        YOU SET US UP 0
    HEY CHRISTMAS TREE input
        YOU SET US UP 0
        GET YOUR ASS TO MARS input
        DO IT NOW
        I WANT TO ASK YOU A BUNCH OF QUESTIONS AND I WANT TO HAVE THEM ANSWERED IMMEDIATELY
    HEY CHRISTMAS TREE width
    YOU SET US UP 0
    GET YOUR ASS TO MARS width
    DO IT NOW calcwidth input
    DO IT NOW buildline width input
YOU HAVE BEEN TERMINATED

LISTEN TO ME VERY CAREFULLY calcwidth
    I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE input
    GIVE THESE PEOPLE AIR
    HEY CHRISTMAS TREE result
    YOU SET US UP 2
    HEY CHRISTMAS TREE calc
    YOU SET US UP input
    STICK AROUND calc
        GET TO THE CHOPPER calc
        HERE IS MY INVITATION calc
        HE HAD TO SPLIT 10
        ENOUGH TALK
        BECAUSE I'M GOING TO SAY PLEASE calc
            GET TO THE CHOPPER result
        HERE IS MY INVITATION result
        GET UP 1
        ENOUGH TALK
    YOU HAVE NO RESPECT FOR LOGIC
    CHILL
    I'LL BE BACK result
HASTA LA VISTA, BABY

LISTEN TO ME VERY CAREFULLY buildline
    I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE width
    I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE input
    GIVE THESE PEOPLE AIR

    HEY CHRISTMAS TREE ctr
        YOU SET US UP -2
        GET TO THE CHOPPER ctr
            HERE IS MY INVITATION ctr
            GET UP width
        ENOUGH TALK
    HEY CHRISTMAS TREE mask
        YOU SET US UP 1
        STICK AROUND ctr
            GET TO THE CHOPPER mask
                HERE IS MY INVITATION mask
                YOU'RE FIRED 10
            ENOUGH TALK
            GET TO THE CHOPPER ctr
                HERE IS MY INVITATION ctr
                GET DOWN 1
            ENOUGH TALK
        CHILL
    HEY CHRISTMAS TREE digit
        YOU SET US UP 0
    HEY CHRISTMAS TREE decider
        YOU SET US UP 0
    HEY CHRISTMAS TREE result
        YOU SET US UP 0
    HEY CHRISTMAS TREE lines
        YOU SET US UP width
    HEY CHRISTMAS TREE left
        YOU SET US UP 0
    HEY CHRISTMAS TREE right
        YOU SET US UP 1
    HEY CHRISTMAS TREE leftcounter
        YOU SET US UP 0
    HEY CHRISTMAS TREE rightcounter
        YOU SET US UP 0
    HEY CHRISTMAS TREE widthcounter
    YOU SET US UP width
    STICK AROUND lines
        GET TO THE CHOPPER result
            HERE IS MY INVITATION 0
        ENOUGH TALK
        GET TO THE CHOPPER leftcounter
            HERE IS MY INVITATION left
        ENOUGH TALK
        GET TO THE CHOPPER rightcounter
            HERE IS MY INVITATION right
        ENOUGH TALK
        GET TO THE CHOPPER widthcounter
            HERE IS MY INVITATION width
        ENOUGH TALK
        STICK AROUND widthcounter
            BECAUSE I'M GOING TO SAY PLEASE leftcounter
                GET TO THE CHOPPER result
                    HERE IS MY INVITATION result
                    GET UP 1
                    YOU'RE FIRED 10
                ENOUGH TALK
                GET TO THE CHOPPER leftcounter
                    HERE IS MY INVITATION leftcounter
                    GET DOWN 1
                ENOUGH TALK
            BULLSHIT
                GET TO THE CHOPPER decider
                    HERE IS MY INVITATION rightcounter
                    LET OFF SOME STEAM BENNET widthcounter
                ENOUGH TALK
                BECAUSE I'M GOING TO SAY PLEASE decider
                    GET TO THE CHOPPER result
                        HERE IS MY INVITATION result
                        GET UP 1
                        YOU'RE FIRED 10
                    ENOUGH TALK
                BULLSHIT
                    GET TO THE CHOPPER result
                        HERE IS MY INVITATION result
                        GET UP 8
                        YOU'RE FIRED 10
                    ENOUGH TALK
                YOU HAVE NO RESPECT FOR LOGIC
            YOU HAVE NO RESPECT FOR LOGIC

            GET TO THE CHOPPER widthcounter
                HERE IS MY INVITATION widthcounter
                GET DOWN 1
            ENOUGH TALK
        CHILL
        GET TO THE CHOPPER result
            HERE IS MY INVITATION result
            HE HAD TO SPLIT 10
        ENOUGH TALK
        TALK TO THE HAND result
        GET TO THE CHOPPER lines
            HERE IS MY INVITATION lines
            GET DOWN 1
        ENOUGH TALK
        GET TO THE CHOPPER digit
            HERE IS MY INVITATION input
            HE HAD TO SPLIT mask
            I LET HIM GO 10
        ENOUGH TALK
        GET TO THE CHOPPER mask
            HERE IS MY INVITATION mask
            HE HAD TO SPLIT 10
        ENOUGH TALK
        GET TO THE CHOPPER decider
            HERE IS MY INVITATION digit
            YOU ARE NOT YOU YOU ARE ME 1
        ENOUGH TALK
        BECAUSE I'M GOING TO SAY PLEASE decider
            GET TO THE CHOPPER left
                HERE IS MY INVITATION left
                GET UP 1
            ENOUGH TALK
        BULLSHIT
            GET TO THE CHOPPER right
                HERE IS MY INVITATION right
                GET UP 1
            ENOUGH TALK
        YOU HAVE NO RESPECT FOR LOGIC
    CHILL
    I'LL BE BACK result
HASTA LA VISTA, BABY

দুর্ভাগ্যক্রমে, আমি এই উত্তরটি বৈধ বলে মনে করি না কারণ এটি ইনপুটটিকে খুব বেশি সীমাবদ্ধ করে এবং আউটপুটটিকে এমনভাবে পরিবর্তন করে যেটির অনুমতি নেই (কোনও শ্বেতস্থান ব্যাকগ্রাউন্ড ব্যবহার করে)। দুঃখিত!
হাইপারনিউটারিনো

@ হাইপারনিউট্রিনো ফেয়ার যথেষ্ট, আপনি আর্নল্ডসির কাছ থেকে যতটা পেতে পারেন এটি তত ভাল।
টেম্পোরাল

এটা দুর্ভাগ্যজনক. আপনার সময় এবং প্রচেষ্টা নষ্ট করার জন্য দুঃখিত, তবে আমি বিশ্বাস করি যে চ্যালেঞ্জের বিশদগুলির দ্বারা এটি অবৈধ হওয়ায় আপনাকে এটি মুছে ফেলতে হবে। আপনি মেটাতে জিজ্ঞাসা করতে পারেন যদি আপনি বিশ্বাস করেন যে এটিই ভুল পছন্দ এবং সম্প্রদায়টি সেখানে কী করতে হবে তা সিদ্ধান্ত নিতে পারে। ধন্যবাদ :)
হাইপারনিউটারিনো

1
@ হাইপারনিউট্রিনো আমি নিশ্চিত নই যে আর্নল্ডসি স্বয়ংক্রিয়ভাবে অবৈধ: এটি আর্নল্ডসি সমর্থিত বৈধ পূর্ণসংখ্যার পুরো পরিসীমাটির জন্য কাজ করে এবং একটি ছোট স্থান ব্যবহার করে এটি "আপত্তিজনক" করে না: আপনি যদি আর্নল্ডসির পক্ষে 32 বিটের সমর্থনে লিখেছিলেন তবে আমার উত্তর যে নির্ভুলতা পরিবর্তন ছাড়াই কাজ করবে। নিয়মগুলি প্যাডিং চরিত্রগুলির জন্য কোনও প্রয়োজনীয়তা বা ন্যূনতম উচ্চতার টর্নেডো নির্দিষ্ট করে যা অবশ্যই অর্জনযোগ্য। তবে আপনি চাইলে আমি মেটাতে একটি প্রশ্ন খুলব।
টেম্পোরাল

1
তুমি ঠিক বলছো. যথেষ্ট ফর্সা, চালিয়ে যান; আমি ভুল বুঝলাম। উত্তম উত্তর :)
হাইপারনিউটারিনো



1

সি, 68 63 বাইট

s;f(w,i)int*i;{for(;w;s+=!*i++)printf("%*s%0*d\n",s,"",w--,0);}

এটি printf()বিন্যাসের স্ট্রিংয়ে গতিশীল ক্ষেত্রের প্রস্থের স্পেসিফিকেশন ব্যবহার করে । ফাংশনটিকে এভাবে বলা হয়:

#include <stdio.h>

s;f(w,i)int*i;{for(;w;s+=!*i++)printf("%*s%0*d\n",s,"",w--,0);}

int main() {
    f(8, (int[]){1, 0, 0, 0, 1, 0, 0});
}

5 টি বাইট সরিয়ে ফেলুন int s=0;এবং এর s;আগে রেখে দিন f(w,i)পছন্দ হয়েছে
এমডি এক্সএফ

1

জাভাস্ক্রিপ্ট (ES6), 64 বাইট

বাক্য সিনট্যাক্স (ক) (খ) এর কারিমে প্যারামিটার গ্রহণকারী বেনামে ফাংশন। বি অ্যারেতে একটি ফাঁকা স্ট্রিং ডানদিক থেকে সরানোর উপস্থাপন করে এবং একটি স্থান বাম থেকে সরানোর উপস্থাপন করে।

a=>b=>b.reduce((t,v)=>t+'\n'+(a.pop(),p+=v)+a,a=Array(a+1),p='')

উদাহরণগুলির মতো 1 এবং 0 ব্যবহার করে স্কোর 70 হয়

a=>b=>b.reduce((t,v)=>t+'\n'+(a.pop(),v?p:p+=' ')+a,a=Array(a+1),p='')

পরীক্ষা

F=
a=>b=>b.reduce((t,v)=>t+'\n'+(a.pop(),p+=v)+a,a=Array(a+1),p='')

function update() {
  var b=B.value.match(/\d/g)
  
  if (b) {
    b=b.map(v=>+v?'':' ')
    O.textContent = F(b.length+1)(b)
  }
  else
    O.textContent = 'invalid input'
}

update()
  
Input B (0 and 1) <input id=B value='1001' oninput='update()'>
<pre id=O></pre>


0

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

param($a,$b)"#"*$a;0..$a|%{" "*($i+=$b[$_])+"#"*--$a}

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

ইনপুট লাগে $aঐচ্ছিক পূর্ণসংখ্যা হিসাবে এবং $bঅ্যারে হিসাবে 1এবং 0গুলি। (নোট যে আমার অ্যারের 1এবং 0থেকে পালট উল্টানো হয় চ্যালেঞ্জ এর।) প্রাথমিক লাইন নির্মান #এবং পাতা যে পাইপলাইন উপর। তারপরে লুপ 0করুন $a। প্রতিটি পুনরাবৃত্তি, আমরা একটি সম্ভাব্য-বর্ধিত স্থান ফাঁকা আউটপুট, তার একটি প্রাক হ্রাস সংখ্যা পরে #। হ্যাঁ, এটি শেষের দিকে একটি ফাঁকা ট্র্যাকিংয়ের নতুন লাইনটি ছড়িয়ে দেবে, যেহেতু আমরা $aতালিকার আইটেমগুলির সংখ্যার চেয়ে লুপ করছি ।

সমস্ত পৃথক স্ট্রিংগুলি পাইপলাইনে রেখে যায় এবং তাদের মধ্যে একটি নতুন লাইন বিভাজক সহ আউটপুট প্রোগ্রামের সমাপ্তিতে অন্তর্ভুক্ত।


0

সি #, 181 বাইট

n=>a=>{var r=new string[n];r[0]=new string('#',n);for(int i=1,p;i<n;++i){r[i]=r[i-1];p=a[i-1]?r[i].LastIndexOf('#'):r[i].IndexOf('#');r[i]=r[i].Remove(p,1).Insert(p," ");}return r;}

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

সম্পূর্ণ / ফর্ম্যাট সংস্করণ:

class P
{
    static void Main()
    {
        System.Func<int, System.Func<bool[], string[]>> f = n => a =>
        {
            var r=new string[n];
            r[0]=new string('#',n);

            for (int i = 1, p; i < n; ++i)
            {
                r[i] = r[i - 1];
                p = a[i - 1] ? r[i].LastIndexOf('#') : r[i].IndexOf('#');
                r[i] = r[i].Remove(p, 1).Insert(p, " ");
            }

            return r;
        };

        System.Console.WriteLine(string.Join("\n", f(5)(new[] { true, false, false, true })));

        System.Console.ReadLine();
    }
}

0

কাঠকয়লা , 17 বাইট

FN«P×#⁺¹ι¿I§⮌ηι↑↖

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডের নিকটতম ভার্জোজ সংস্করণ to ব্যাখ্যা:

FN«

প্রথম ইনপুট লুপ পুনরাবৃত্তির সংখ্যা দেয়।

P×#⁺¹ι

যেহেতু লুপ সূচকগুলি ডিফল্ট শূন্য-সূচকযুক্ত হয় তাই আমরা সঠিক সংখ্যার জন্য এখানে একটি যুক্ত করি #

¿I§⮌ηι

টর্নেডোর নীচ থেকে শুরু করে কাজ করা একটি বাইট সাশ্রয় করে তবে আমাদের তখন দ্বিতীয় ইনপুটটি বিপরীত করা দরকার যাতে আমরা বর্তমান অঙ্কটি সূচী করতে পারি।

বর্তমান সংখ্যাটি যদি একটি হয় তবে উপরে 1চলে যান। এটি পূর্ববর্তী সারিতে #শেষে অতিরিক্ত রয়েছে।

বর্তমান সংখ্যাটি যদি একটি হয় তবে 0উপরে এবং বাম দিকে সরে যান। এটি পূর্ববর্তী সারিতে #শুরুতে একটি অতিরিক্ত থাকে।


0

সি # , 159 বাইট

using System.Linq;n=>a=>new[]{new string('#',n)}.Concat(a.Select((_,i)=>{var s=a.Take(i+1).Count(j=>j==0);var h=n-i-1;return new string('#',h).PadLeft(s+h);}))

ব্যাখ্যা

 new[] { new string('#', n) }                //start with n number of hashes
                .Concat(                     //append...
                    a.Select((_, i) =>       //    map each element of array
                    {
                        var s = a.Take(i + 1).Count(j => j == 0);  // count the number of 0's up to, and including, this point
                        var h = n - i - 1;                         // number of hashes for this step
                        return new string('#', h).PadLeft(s + h);  // number of hashes padded left with number of 0s
                    }));

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


0

পিএইচপি, 136 বাইট

$b=explode(',',end($argv));$a=$argc==3?$argv[1]:count($b)+1;$c=0;for(;$a;--$a){printf("% {$c}s%'#{$a}s\n",'','');$c+=!array_shift($b);}

একটি পিএইচপি ফাইলে সংরক্ষণ করুন এবং এর সাথে পরীক্ষা করুন php file.php 8 '1,0,0,0,1,0,0'। আউটপুট:

########
#######
 ######
  #####
   ####
   ###
    ##
     #

হায়, ইনপুট প্রস্তুত করা অর্ধেক কাজ।

সমস্ত কিছুর str_repeatপরিবর্তে printfএবং ... অন্য সংস্করণ (158 বাইট) goto:

$b=explode(',',end($argv));$a=$argc==3?$argv[1]:count($b)+1;$c=0;z:
echo str_repeat(' ',$c).str_repeat('#',$a)."\n";while(--$a){$c+=!array_shift($b);goto z;}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.