গতিশীলভাবে বক্সগুলি তৈরি করুন


22

চ্যালেঞ্জ:

ASCII বাক্সগুলির একটি আয়তক্ষেত্র আঁকুন: []

নিয়ম:

একটি প্রস্থ এবং একটি উচ্চতার ইনপুট নেয়

আপনি উভয়ই সংখ্যা বলে ধরে নিতে পারেন

নিউলাইন অক্ষরের সাথে একটি স্ট্রিং অবশ্যই তৈরি করতে হবে,। N

উদাহরণ:

2, 2:

[][]
[][]

2, 3:

[][]
[][]
[][]

সবচেয়ে কম বাইটস জিতেছে।


2
প্রথম প্রথম পোস্ট! পিপিসিজিতে আপনাকে স্বাগতম!
এমডি এক্সএফ

1
আমি কি অনুমান করতে পারি যে সংখ্যাগুলি ইতিবাচক? ট্রেলিং নিউলাইন থাকতে পারে?
ডিজাইমা

@ ডিজাইমা ইতিবাচক পূর্ণসংখ্যক, কোনও অনুসরণযোগ্য বা শীর্ষস্থানীয় জিনিস নেই
রবিনলেমন

আমরা কি কনসোলে মুদ্রণ করতে পারি বা স্ট্রিংটি ফেরত দেওয়ার দরকার আছে?
জিউসেপ

5
আমরা যদি আক্ষরিকভাবে পেছনের নতুন লাইনের প্রিন্ট না করতে পারি? এটি একটি অনুমানযোগ্য নতুন লাইনের অনুমতি দেওয়ার জন্য ভাল অনুশীলন হতে পারে
ধ্বংসাত্মক লেবু

উত্তর:



4

গণিত, 26 বাইট

Grid@Table["[]",{#2},{#}]&

ম্যাথমেটিক্স Gridঅবজেক্টটি কি "নিউলাইন অক্ষরের একটি স্ট্রিং" হিসাবে গণ্য হবে?
ডেভিড জাং


4

পাইথ - 7 5 বাইট

একটি চালাক কৌতুক দ্বারা -2 বাইট insert_name_ এখানে ধন্যবাদ

VE*`Y

এখানে চেষ্টা করুন

ব্যাখ্যা:

VE*`Y
V      # Loop
 E     # <input> number of times
   `Y  # String representation of empty list (used to be "[]", but insert_name_here pointed out this shorter alternative)
  *    # repeat string implicit input number of times
       # implicit print

3
এর `Yপরিবর্তে (খালি তালিকার স্ট্রিং উপস্থাপনা) ব্যবহার করে আপনি 2 বাইট সংরক্ষণ করতে পারেন "[]"
insert_name_here

@ অন্তর্ভুক্ত_নাম_এখানে জ্ঞানবান !! আমি উত্তর আপডেট। যে ইশারা জন্য ধন্যবাদ!
মারিয়া

1
এই সঠিক কোডটি স্বাধীনভাবে নিয়ে এসেছিল। সুন্দরভাবে সম্পন্ন.
ইসাকাক

4

সি, 47 46 বাইট

f(w,h){for(h*=w;h--;)printf(h%w?"[]":"[]\n");}

অথবা

f(w,h){for(h*=w;h--;)printf("[]%c",h%w?0:10);}

আমার প্রথম কোড গল্ফ প্রচেষ্টা, আমি কি কিছু স্পষ্ট মিস করেছি?


45 এর জন্য এটি রয়েছে, তবে এটির শুরুতে একটি নতুন লাইন রয়েছে:f(w,h){h*=w;while(h--)printf("\n[]"+!(h%w));}
কনর ও'ব্রায়ান

যে শুধুমাত্র কাজ করে প্রস্থ হয় 2.
dbandstra

সুতরাং এটি আমার ভুল
কনর ও'ব্রায়ান

দুর্দান্ত প্রথম গল্ফ! সাইটে স্বাগতম!
এমডি এক্সএফ

1
একটি forলুপ ব্যবহার করে কোডটি আরও ছোট করা হবে না ?
স্পিক্যাট্রিক্স


3

; # + , 197 বাইট

>;;;;;;~++++++++:>~;;;;:>~*(-:~<~+-::>-:::<~<-+++++++++~:::<~+-:::>-::*)-::<-::::>-::(;)::>-::*(-:~<~+-::>-:::<~<-+++++++++~:::<~+-:::>-::*)-:<~<;;;;;-+>-:<-:-(-:::~<-:::(~<#<-;;-#~;)-:<#-::<;>-:-)

এটি অনলাইন চেষ্টা করুন! প্রতিটি ইনপুট সংখ্যার পরে একটি শূন্য বাইট প্রয়োজন।

আমি জানি না কীভাবে এটি কাজ করে। আমি আপনাকে যা বলতে পারি তা হ'ল কোডের এই অংশটি:

 *(-:~<~+-::>-:::<~<-+++++++++~:::<~+-:::>-::*)-::<-::::>-::(;)::>-::*(-:~<~+-::>-:::<~<-+++++++++~:::<~+-:::>-::*)

ইনপুট নম্বরগুলি পার্স করছে।


3

ব্রেনফাক, 145 বাইট

+++++++++[>++++++++++<-]>+[>+>+<<-]>>++>,>+++++++++[<----->-]<--->>>,>+++++++++[<----->-]<--->++++++++++<[<<<[>+>+<<-]>[<<<.>.>>-]>[<<+>>-]>>.<-]

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

আমার প্রথম কোড গল্ফ! হ্যাঁ!

ইনপুটটি ascii + 48 এ রয়েছে, সুতরাং 50, 50 করতে আপনাকে অবশ্যই খ, বি (98 এর জন্য এসকি অক্ষর) ইনপুট করতে হবে

ব্যাখ্যা

+++++++++[>++++++++++<-]>+ Get the opening square bracket into first position
[>+>+<<-] Get it into the second and third position
>>++ Get the third position to be the closing bracket
>
,>+++++++++[<----->-]<--- Get first number into fourth cell
>>>
,>+++++++++[<----->-]<--- Get second number into seventh cell
>++++++++++ get newline into 8th position
<

[ Start our height loop
<<<[>+>+<<-] Get the width into the fifth and sixth positions
>[ Start our width loop at the fifth position
<<<.>. Print the second and third positions
>>-] Decrement the fifth position
>
[<<+>>-] copy the sixth position into the fourth position
>>. print newline
<-]

চিত্তাকর্ষক। সাইটে স্বাগতম! :)
ডিজেএমসিএমহেম

কেন ASCII + 48 ইনপুট হয়? আপনি কেবল ASCII + 0 ইনপুট (সম্ভবত ব্যবহারের জন্য ASCII + 48 সংস্করণে লিঙ্ক করে) ব্যবহার করে প্রচুর বাইট সংরক্ষণ করতে পারেন
ক্যালকুলেটরফালাইন

আমি কেবল ইনপুটটির জন্য মানদণ্ডগুলি পূরণ করতে চেয়েছিলাম, @ ক্যালকুলেটরফলাইন
vityavv

...হ্যাঁ সঠিক. : |
ক্যালকুলেটরলাইন

2

জে , 12 বাইট

'[]'$~],+:@[

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

ব্যাখ্যা

'[]'$~],+:@[   input: y, x
        +:@[   double y
      ],       pair with x
               this gives (x, 2y)
    $~         shape the left argument into the right argument's shape
'[]'           2-length character string

এটি আমাদের একটি দেয় xদ্বারা 2yপুনরায় স্ট্রিং []অক্ষর।




2

জেলি , 7 বাইট

ẋ⁾[]ẋ$Y

একটি ডায়াডিক লিঙ্ক অক্ষরের একটি তালিকা (বা ফলাফলটি মুদ্রণের একটি সম্পূর্ণ প্রোগ্রাম) ফিরিয়ে দিচ্ছে।

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

কিভাবে?

ẋ⁾[]ẋ$Y - Main link: number w, number h          e.g. 2, 3
ẋ       - repeat w h times                            [2,2,2]
     $  - last two links as a monad:
 ⁾[]    -   literal ['[',']'],                        "[]"
    ẋ   -   repeat list (vectorises)                  ["[][]","[][]","[][]"]
      Y - join with newlines                          "[][]\n[][]\n[][]"
        - if a full program, implicit print





2

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

param($w,$h),("[]"*$w)*$h

-3 ম্যাথিয়াসকে ধন্যবাদ!


আপনি এটি 25 param($w,$h),("[]"*$w)*$h
টির

2

জাপট , 13 12 + 1 = 14 13 বাইট

-Rপতাকা জন্য +1 ।

"[]"pN× òU*2

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

  • ওবারাকনকে ধন্যবাদ 1 বাইট


@ ইথ প্রডাকশনস: যে কার্টুনটি আমি সন্ধান করছিলাম কিন্তু এটি খুব মাতাল ছিল না!
শেগি

হাহাহা, আশা করি আপনারা মজাদার রাত কাটাচ্ছেন। fyi, এতে U*Vসংক্ষিপ্ত করা যেতে পারে
অলিভার

1
@ ওবরকন: Nগত রাতের সাথে কাজ করার 2 টি সুযোগ এটি । বাচ্চারা কখনই পান করে না!
শেগি


2

কাঠকয়লা , 8 7 বাইট

EN×[]Iη

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ক্রমের উচ্চতা, প্রস্থে ইনপুট নেয়। কাঠকয়ালের অঙ্কন আদিমগুলি এটির জন্য উপযুক্ত নয়, সুতরাং এটি কেবল সহজ উপায় নেয় এবং []স্ট্রিংটিকে যথাযথভাবে পুনরাবৃত্তি করে । ব্যাখ্যা:

 N      First input as a number
E       Map over implcit range
      η Second input
     I  Cast to number
   []   Literal string
  ×     Repeat
        Implicitly print on separate lines

ওয়েল এটির জন্য আদিম অঙ্কন রয়েছে তবে এখনও 8 বাইট রয়েছে : পি
এএসসিআইআই-

@ এএসসিআইআই-শুধু দুঃখিত, আমি বুঝতে পারি নি যে ওবলং স্বেচ্ছাসেবী স্ট্রিংয়ে কাজ করেছে। ঝরঝরে!
নিল

@ এএসসিআইআই-ওহ, এবং পূর্বনির্ধারিত খালি স্ট্রিং ভেরিয়েবলের ভার্বোজের নাম কী?
নিল


@ এএসসিআইআই-তবেই আমি এখানে কী ভুল করছি: এটি অনলাইনে চেষ্টা করুন!
নীল

1

আর , 70 বাইট

p=paste
function(w,h)p(rep(p(rep('[]',w),collapse=''),h),collapse='
')

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

একটি বেনাম ফাংশন দেয় যা স্ট্রিংটি তৈরি করে এবং প্রদান করে।

45 বাইট, অনুকরণীয়

function(w,h)write(matrix('[]',w,h),'',w,,'')

একটি বেনাম ফাংশন যা পছন্দসই ফর্ম্যাটে স্ট্রিংটি ছাপায়।

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


1

Japt , 7 বাইট

কোডের 6 বাইট, -Rপতাকাটির জন্য +1 ।

VÆç"[]

বাগের কারণে সর্বশেষতম সংস্করণে çকাজ করে না তবে এটি প্রতিশ্রুতিবদ্ধভাবে কাজ করেf619c52এটি অনলাইন পরীক্ষা!

ব্যাখ্যা

VÆ   ç"[]
VoX{Uç"[]"}  // Ungolfed
             // Implicit: U, V = input integers
VoX{      }  // Create the range [0...V) and replace each item X with
    Uç"[]"   //   U copies of the string "[]".
-R           // Join the result with newlines.
             // Implicit: output result of last expression


1

কিউবিআইসি , 14 বাইট

[:|?[:|?@[]`';

ব্যাখ্যা:

[:|     FOR a = 1 to (read input from cmd line)
?       PRINT a newlne
[:|     FOR c = 1 to (read input from cmd line)
?@[]`   PRINT A$ (containing the box)
';         and inject a semicolon in the compiled QBasic code to suppress newlines

এটি # তীর, # কলের ক্রমে এর যুক্তিগুলি গ্রহণ করে। আউটপুট একটি নতুন লাইন দিয়ে শুরু হয়।



1

বাশ , 55 বাইট

seq $(($1*$2))|sed s/.*/[]/|tr -d "
"|fold -w $(($1*2))

এটি অনলাইন চেষ্টা করুন! যেহেতু আমি উইন্ডো চালাই, ব্যাশের টিআইও স্বাদ ব্যবহার করে।


1
আমি মনে করি না এটি বহু-অঙ্কের সংখ্যার জন্য কাজ করে
ক্রিটসি লিথোস

@ ক্রিটিক্সিলিথস এটি এখনই কাজ করা উচিত
কনর ও'ব্রায়ান

1

সি #, 78 বাইট

(w,h)=>"".PadLeft(h).Replace(" ","".PadLeft(w).Replace(" ","[]")+'\n').Trim();

সি # প্যাডে চালান

এটি ফর-লুপগুলির চেয়ে সংক্ষিপ্ত এবং আমি সি # তে কোনও ফাংশন সম্পর্কে অবগত নই যা কম কোড দিয়ে পুনরাবৃত্তি করতে পারে।



1

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

মন্তব্যগুলি থেকে, একটি ট্রেলিং নিউলাইন এখন অনুমোদিত।

w=>h=>("[]".repeat(w)+`
`).repeat(h)

চেষ্টা করে দেখুন

f=
w=>h=>("[]".repeat(w)+`
`).repeat(h)
oninput=_=>o.innerText=f(+i.value)(+j.value);o.innerText=f(i.value=2)(j.value=2)
*{font-family:sans-serif;}
input{margin:0 5px 0 0;width:50px;}
<label for=i>w: </label><input id=i type=number><label for=j>h: </label><input id=j type=number><pre id=o>



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