একটি ASCII আয়তক্ষেত্র আঁকুন


20

একটি অ্যারের ইনপুট হিসাবে দুটি পূর্ণসংখ্যা দেওয়া, প্রথম পূর্ণসংখ্যা প্রস্থ হিসাবে এবং দ্বিতীয় উচ্চতা হিসাবে ব্যবহার করে একটি আয়তক্ষেত্র আঁকুন।

অথবা, যদি আপনার ভাষা এটি সমর্থন করে তবে দুটি পূর্ণসংখ্যা পৃথক ইনপুট হিসাবে দেওয়া যেতে পারে।

ধরুন প্রস্থ এবং উচ্চতা কখনই 3 এর কম হবে না এবং এগুলি সর্বদা দেওয়া হবে।

উদাহরণ ফলাফল:

[3, 3]

|-|
| |
|-|

[৫, ৮]

|---|
|   |
|   |
|   |
|   |
|   |
|   |
|---|

[১০, ৩]

|--------|
|        |
|--------|

এটি কোড-গল্ফ, তাই সর্বনিম্ন পরিমাণ বাইট জিতের উত্তর।

উত্তর:



10

জেলি , 14 বাইট

,þ%,ỊḄị“-|| ”Y

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

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

,þ%,ỊḄị“-|| ”Y  Main link. Left argument: w. Right argument: h

,þ              Pair table; yield a 2D array of all pairs [i, j] such that
                1 ≤ i ≤ w and 1 ≤ j ≤ h.
   ,            Pair; yield [w, h].
  %             Take the remainder of the element-wise division of each [i, j]
                by [w, h]. This replaces the highest coordinates with zeroes.
    Ị           Insignificant; map 0 and 1 to 1, all other coordinates to 0.
     Ḅ          Unbinary; convert each pair from base 2 to integer.
                  [0, 0] -> 0 (area)
                  [0, 1] -> 1 (top or bottom edge)
                  [1, 0] -> 2 (left or right edge)
                  [1, 1] -> 3 (vertex)
       “-|| ”   Yield that string. Indices are 1-based and modular in Jelly, so the
                indices of the characters in this string are 1, 2, 3, and 0.
      ị         At-index; replace the integers by the correspoding characters.
             Y  Join, separating by linefeeds.

এটি :) এর দুর্দান্ত ব্যবহার
লিন

9

মতলব, 69 65 56 বাইট

ধন্যবাদ @ ওয়েইংআইফ ফার্স্ট এবং @ লুইস মেন্ডো কিছু বাইটের জন্য =)

function z=f(a,b);z(b,a)=' ';z([1,b],:)=45;z(:,[1,a])='|'

এই মতলব সত্যিই সহজ: প্রথম আকাঙ্ক্ষিত আকারের একটি ম্যাট্রিক্স, তারপর সূচক প্রথম এবং শেষ সারি সন্নিবেশ করা -, এবং প্রথম এবং শেষ কলামটি সন্নিবেশ করতে একইভাবে কাজ |

উদাহরণস্বরূপ f(4,3)রিটার্ন

|--|
|  |
|--|

@ ওয়েইংআইফ ফার্স্ট ওহ, অবশ্যই আপনাকে অনেক ধন্যবাদ!
flawr

6 বাইট সংক্ষিপ্ত:z([1,b],1:a)=45;z(1:b,[1,a])=124;z=[z,'']
স্টিভি গ্রিফিন

এমনকি আরও ছোট:z(b,a)=' ';z([1,b],:)=45;z(:,[1,a])=124
লুইস মেন্ডো

@ লুইস মেন্ডো ধন্যবাদ! আমাদের এখনও স্ট্রিংটি শক্ত দরকার, অন্যথায় অ্যারে সংখ্যাসূচক রূপান্তরিত।
flawr

@ ফ্লাওয়ার z(b,a)=' 'চর হিসাবে আদ্যক্ষর রূপান্তরিত হয় । এর পরে আপনি সংখ্যাগুলি পূরণ করতে পারেন এবং সেগুলি স্বয়ংক্রিয়ভাবে চরে কাস্ট হয়। zএর মূল
ধরণটি

8

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

f=
(w,h,g=c=>`|${c[0].repeat(w-2)}|
`)=>g`-`+g` `.repeat(h-2)+g`-`
;
<div oninput=o.textContent=f(w.value,h.value)><input id=w type=number min=3 value=3><input id=h type=number min=3 value=3><pre id=o>


ডিফল্ট যুক্তি হিসাবে কোনও টেম্পলেট ফাংশনটি পাস করছেন? চতুর!
ফ্লোরি

8

হাস্কেল, 62 55 বাইট

f[a,b]n=a:(b<$[3..n])++[a]
g i=unlines.f[f"|-"i,f"| "i]

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

*Main> putStr $ g 10 3
|--------|
|        |
|--------|

সহায়ক ফাংশন fদুটি উপাদান তালিকা [a,b]এবং একটি সংখ্যা নেয় nএবং এর পরে একটির aপরে একটির একটি তালিকা দেয় । আমরা তিনবার ব্যবহার করতে পারি : উপরের / নীচের লাইনটি তৈরি করতে :, একটি মাঝারি রেখা: এবং সেই দুটি থেকে পুরো আয়তক্ষেত্রটি: (দ্রষ্টব্য: আংশিক প্রয়োগের কারণে প্যারামিটার হিসাবে উপস্থিত হবে না )।n-2 baff "|-" if "| " if [<top>,<middle>] jjg i

সম্পাদনা করুন: @ ডায়ান্ন একটি দৈর্ঘ্যের Charমধ্যে দুটি আর্গুমেন্ট একত্রিত করে কিছু বাইট সংরক্ষণ করেছেন String2 অনেক অনেক ধন্যবাদ!


আমি #আইডিয়া পছন্দ!
flawr

2
আমি মনে করি আপনি সংজ্ঞা (a:b)#n=a:([3..n]>>b)++[a]এবং লেখার মাধ্যমে কয়েকটি বাইট সংরক্ষণ করতে পারেন["|-"#i,"| "#i]#j
dianne

@ ডায়ান্ন: খুব চালাক অনেক ধন্যবাদ!
নিমি

8

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

-3 বাইটস @ ফ্লর্নকোকে ধন্যবাদ (অপ্রয়োজনীয় প্রথম বন্ধনীর অপসারণ; hকাউন্টার হিসাবে ব্যবহার করুন )

def f(w,h):exec"print'|'+'- '[1<h<%d]*(w-2)+'|';h-=1;"%h*h

পরীক্ষার কেসগুলি আদর্শে রয়েছে


('- '[1<i<h])প্রথম বন্ধনী প্রয়োজন নেই।
flornquake

কাউন্টার হিসাবে এইচ ব্যবহার করে অন্য একটি বাইট সংরক্ষণ করুন:exec"print'|'+'- '[1<h<%d]*(w-2)+'|';h-=1;"%h*h
ফ্লর্নকোপ

@ ফ্লর্নকোয়েকে আমি এই প্রথম বন্ধনীর প্রয়োজনীয়তা যাচাই করতে চেয়েছিলাম, কিন্তু ভুলে গিয়েছি। hকাউন্টার হিসাবে ব্যবহার করা স্মার্ট! ধন্যবাদ।
জোনাথন অ্যালান

8

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

for(;$i<$n=$argv[2];)echo str_pad("|",$argv[1]-1,"- "[$i++&&$n-$i])."|\n";

1
আপনি এখনও একটি শারীরিক লাইনব্রেক দিয়ে একটি বাইট জিততে পারেন।
তিতাস

1
এর !$i|$n==++$iপরিবর্তে -2 বাইট!$i|$n-1==$i++
টিটাস

1
এর সাথে আরও একটি বাইট$i++&&$n-$i?" ":"-"
টাইটাস

1
$i++&&$n-$i?" ":"-"-> "- "[$i++&&$n-$i](-2)
তিতাস

7

ভিমস্ক্রিপ্ট, 93 83 75 74 73 66 64 63 বাইট

কোড

fu A(...)
exe "norm ".a:1."i|\ehv0lr-YpPgvr dd".a:2."p2dd"
endf

উদাহরণ

:call A(3,3)

ব্যাখ্যা

fun A(...)    " a function with unspecified params (a:1 and a:2)
exe           " exe(cute) command - to use the parameters we must concatenate :(
norm          " run in (norm) al mode
#i|           " insert # vertical bars
\e            " return (`\<Esc>`) to normal mode
hv0l          " move left, enter visual mode, go to the beginning of the line,  move right (selects inner `|`s)
r-            " (r)eplace the visual selection by `-`s
YpP           " (Y) ank the resulting line, and paste them twice
gv            " re-select the previous visual selection
r<Space>      " replace by spaces
dd            " Cut the line
#p            " Paste # times (all inner rows) 
2dd           " Remove extra lines

মনে রাখবেন এটি ব্যবহার করছে না norm!তাই এটি ভিএম কাস্টম ম্যাপিংগুলিতে হস্তক্ষেপ করতে পারে!


5

এমএটিএল , 19 বাইট

'|-| '2:"iqWQB]E!+)

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

ব্যাখ্যা

পদ্ধতির এই অন্যান্য উত্তরে ব্যবহৃত অনুরূপ । কোডটি ফর্মের একটি সংখ্যাসূচক অ্যারে তৈরি করে

3 2 2 2 3
1 0 0 0 1
1 0 0 0 1
1 0 0 0 1
1 0 0 0 1
1 0 0 0 1
1 0 0 0 1
3 2 2 2 3

এবং তার মানগুলি '|-| 'পছন্দসই ফলাফল তৈরি করতে স্ট্রিংয়ের (1 ভিত্তিক, মডিউলার) সূচক হিসাবে ব্যবহৃত হয় ।

'|-| '                % Push this string
      2:"     ]       % Do this twice
         i            % Take input
          q           % Subtract 1
           W          % 2 raised to that
            Q         % Add 1
             B        % Convert to binary
               E      % Multiply by 2
                !     % Transpose
                 +    % Add with broadcast
                  )   % Index (modular, 1-based) into the string

5

05 এ বি 1 ই , 23 22 20 বাইট

ইনপুটটি উচ্চতা হিসাবে নেওয়া হবে, তারপরে প্রস্থ।

F„ -N_N¹<Q~è²Í×'|.ø,

ব্যাখ্যা

F                          # height number of times do
    N_                     # current row == first row
          ~                # OR
      N¹<Q                 # current row == last row
 „ -       è               # use this to index into " -"
            ²Í×            # repeat this char width-2 times
               '|          # push a pipe
                 .ø        # surround the repeated string with the pipe
                   ,       # print with newline

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

আদনানকে ধন্যবাদ 2 বাইট সংরক্ষণ করা


যদি 'অন্য বিবৃতি পরিবর্তে, সাবস্ট্রিং ব্যবহার দুই বাইট সংরক্ষণ: F„ -N_N¹<Q~è²Í×'|.ø,
আদনান

5

সি, 73 বাইট

i;f(w,h){for(i=++w*h;i--;)putchar(i%w?~-i%w%~-~-w?i/w%~-h?32:45:124:10);}

4

পাইথন 2, 56 বাইট

w,h=input()
for c in'-%*c'%(h-1,45):print'|'+c*(w-2)+'|'

flornquake একটি বাইট সংরক্ষণ।


1
স্ট্রিং ফর্ম্যাটিংয়ের দুর্দান্ত ব্যবহার! আপনি %cরূপান্তরটি ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারেন :'-%*c'%(h-1,45)
ফ্লর্নকোপ

ওহ, আমি ভেবেছিলাম %*cএমনকি একটি জিনিস না! ধন্যবাদ. :)
লিন

'-%%%dc'%~-h%45একই দৈর্ঘ্যের জন্য কাজ করে।
xnor

4

কমন লিস্প, 104 বাইট

Golfed:

(defun a(w h)(flet((f(c)(format t"|~v@{~A~:*~}|~%"(- w 2)c)))(f"-")(loop repeat(- h 2)do(f" "))(f"-")))

Ungolfed:

(defun a (w h)
  (flet ((f (c) (format t "|~v@{~A~:*~}|~%" (- w 2) c)))
    (f "-")
    (loop repeat (- h 2) do
     (f " "))
    (f "-")))

3

টার্টলিড , 40 বাইট

ইন্টারপ্রেটার আর কিছুটা বাগড নেই

?;,u[*'|u]'|?@-[*:l'|l[|,l]d@ ],ur[|'-r]

ব্যাখ্যা

?                            - input integer into register
 ;                           - move down by the contents of register
  ,                          - write the char variable, default *
   u                         - move up
    [*   ]                   - while current cell is not *
      '|                     - write |
        u                    - move up
          '|                 - write | again
            ?                - input other integer into register
             @-              - set char variable to -
               [*             ] - while current char is not *
                 :l'|l          - move right by amount in register, move left, write |, move left again
                      [|,l]     - while current cell is not |, write char variable, move left
                           d@   - move down, set char variable to space (this means all but first iteration of loop writes space)
                               ,ur   -write char variable, move up, right
                                  [|   ] -while current char is not |
                                    '-r - write -, move right

3

গণিত, 67 64 বাইট

গল্ফারদের স্নেহময় এবং 3 বাইট সংরক্ষণ করা উচিত আমাকে স্মরণ করিয়ে দেওয়ার জন্য লাস্টারসোর্ট এবং টুউকাএক্সকে ধন্যবাদ!

সোজা বাস্তবায়ন। স্ট্রিংগুলির একটি অ্যারে প্রদান করে।

Table[Which[j<2||j==#,"|",i<2||i==#2,"-",0<1," "],{i,#2},{j,#}]&

1
ব্যবহারের 0<1পরিবর্তেTrue
u54112

1
আমি মনে করি যে j==1কমে যাবে j<1, এবং i==1করতে i<1
ইয়াতসি

3

পাইথন 3, 104 95 বাইট

(@ এমবম্ব007 থেকে প্রতিক্রিয়া: -9 বাইট)

def d(x,y):return'\n'.join(('|'+('-'*(x-2)if n<1or n==~-y else' '*(x-2))+'|')for n in range(y))

(আমার প্রথম কোড গল্ফ, প্রতিক্রিয়া প্রশংসা)


স্বাগত! আপনি কিছু স্থান সরিয়ে ফেলতে পারেন, range(y)পরিবর্তে ব্যবহার করতে পারেন range(0,y)এবং যদি nকখনও নেতিবাচক না হন তবে আপনি ব্যবহার করতে পারেনif n<1or n==~-y else
mbomb007

দেখুন পাইথন টিপস পৃষ্ঠা
mbomb007

@ mbomb007 ধন্যবাদ! আমি তা চেক আউট করব.
বাইরিটি

2

ব্যাচ, 128 বাইট

@set s=
@for /l %%i in (3,1,%1)do @call set s=-%%s%%
@echo ^|%s%^|
@for /l %%i in (3,1,%2)do @echo ^|%s:-= %^|
@echo ^|%s%^|

কমান্ড-লাইন পরামিতি হিসাবে প্রস্থ এবং উচ্চতা নেয়।


2

হ্যাক্স, 112 106 বাইট

function R(w,h){for(l in 0...h){var s="";for(i in 0...w)s+=i<1||i==w-1?'|':l<1||l==h-1?'-':' ';trace(s);}}

Testcases

R(5, 8)
|---|
|   |
|   |
|   |
|   |
|   |
|   |
|---|

R(10, 3)
|---------|
|         |
|---------|

2

জাভা 135 বাইট

public String rect(int x, int y){
String o="";
for(int i=-1;++i<y;){
o+="|";
for(int j=2;++j<x)
if(i<1||i==y-1)
o+="-";
else
o+=" ";
o+="|\n";
}
return o;
}

Golfed:

String r(int x,int y){String o="";for(int i=-1;++i<y;){o+="|";for(int j=2;++j<x;)if(i<1||i==y-1)o+="-";else o+=" ";o+="|\n";}return o;}

আমি 136 গণনা করছি: আপনি প্রথম কমা পরে স্থান সরিয়ে একটি চরও সংরক্ষণ করতে পারেন।
খ্রিস্টান রোনডাউ

1
প্রথমত, এই কোডটি সংকলন করে না। এটি সংকলন করলেও, ওপি বর্তমানে যেমনটি চায় তেমন একটি আয়তক্ষেত্র 'আঁকবে না'। -1।
ইয়াতসি

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

1
"এটি সংকলন না করার কোনও কারণ আমি দেখছি না"। এই তারপর কি: o+=x "|\n"? আপনি একটি +সেখানে রাখা মানে ?
ইয়তসি

ধন্যবাদ। আমি সেখানে কোনও চরিত্র রাখতে চাইনি।
রোমান গ্রাফ

2

পাওয়ারশেল v3 +, 55 বাইট

param($a,$b)1..$b|%{"|$((' ','-')[$_-in1,$b]*($a-2))|"}

ইনপুট নেয় $aএবং $b। থেকে loops 1জন্য $b। প্রতিটি পুনরাবৃত্তি, আমরা একটি একক স্ট্রিং নির্মাণ। মাঝখানে দুটি একক দৈর্ঘ্যের স্ট্রিংগুলির একটি অ্যারে থেকে নির্বাচিত হয়, তারপরে স্ট্রিং-দ্বারা বহুগুণ হয় $a-2, যখন এটি পাইপ দ্বারা বেষ্টিত থাকে। ফলস্বরূপ স্ট্রিংগুলি পাইপলাইনে ফেলে রাখা Write-Outputহয় এবং প্রোগ্রামের সমাপ্তির পরে ডিফল্ট নিউলাইন বিভাজক সহ আউটপুট ঘটে।

বিকল্পভাবে, 55 বাইটেও

param($a,$b)1..$b|%{"|$((''+' -'[$_-in1,$b])*($a-2))|"}

এইটি সম্পর্কে এলো কারণ আমি তার পরিবর্তে একটি স্ট্রিং ব্যবহার করে মাঝপথে অ্যারে নির্বাচনকে গল্ফ দেওয়ার চেষ্টা করছিলাম। যাইহোক, [char]সময়গুলি [int]সংজ্ঞায়িত না হওয়ায় আমরা পেরেনস এবং স্ট্রিং হিসাবে স্ট্রিং হিসাবে কাস্ট করার প্রয়োজনে সঞ্চয়গুলি হারাতে পারি ''+

দুটি সংস্করণ -inঅপারেটরের জন্য v3 বা আরও নতুন প্রয়োজন require

উদাহরণ

PS C:\Tools\Scripts\golfing> .\draw-an-ascii-rectangle.ps1 10 3
|--------|
|        |
|--------|

PS C:\Tools\Scripts\golfing> .\draw-an-ascii-rectangle.ps1 7 6
|-----|
|     |
|     |
|     |
|     |
|-----|

2

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

list(,$w,$h)=$argv;for($p=$h--*$w;$p;)echo$p--%$w?$p%$w?$p/$w%$h?" ":"-":"|
":"|";

নিউলাইন সহ একটি স্ট্যাটিক স্ট্রিং সূচীকরণ

list(,$w,$h)=$argv;         // import arguments
for($p=$h--*++$w;$p;)       // loop $p through all positions counting backwards
    // decrease $h and increase $w to avoid parens in ternary conditions
    echo" -|\n"[
        $p--%$w             // not (last+1 column -> 3 -> "\n")
        ?   $p%$w%($w-2)    // not (first or last row -> 2 -> "|")
            ?+!($p/$w%$h)   // 0 -> space for not (first or last row -> 1 -> "-")
            :2
        :3
    ];

প্রিয় ডাউনভিটার: কেন?
তিতাস

1
এটি হতে পারে কারণ কোনও ব্যবহারকারী দেখেছিল যে আপনার উত্তরটি পর্যালোচনা সারিতে নিম্ন মানের হিসাবে চিহ্নিত করা হয়েছে। আপনি যদি নিজের কোড বা এক-লাইনারের চেয়ে বেশি কিছু পোস্ট করেন তবে আপনি এটি স্বয়ংক্রিয়ভাবে পতাকাঙ্কিত হওয়া এড়াতে পারবেন।
mbomb007

@ ম্যাম্ব্ব: আমি কখনই কাউকে অন-এসো ভাষায় অনলাইনারের জন্য বিবরণ পোস্ট করতে দেখিনি।
তিতাস

বা আউটপুট, বা একটি অ-গল্ফ সংস্করণ। বিষয়বস্তু খুব বেশি সংক্ষিপ্ত না হওয়াতে এটি কোনও বিষয় নয়। আপনি যদি এটি না দেখেন তবে সম্ভবত আপনি খুব বেশি দিন থাকেননি। কিছু পাইথন ওয়ান-লাইনার বেশ জটিল হতে পারে। @ Xnor এর কিছু দেখুন।
mbomb007

2

রুবি, 59 54 52 বাইট

ওহ, এটি অনেক সহজ :)

->x,y{y.times{|i|puts"|#{(-~i%y<2??-:' ')*(x-2)}|"}}

আইডিয়নে টেস্ট রান


1
পরিবর্তে আক্ষরিক নিউলাইনগুলি ব্যবহার করে আপনি একটি দম্পতি বাইট সংরক্ষণ করতে পারেন \n
জর্ডান

1
আপনি iএবং সংজ্ঞা না দিয়ে বাইটগুলি সংরক্ষণ করতে পারেন jiএর সংজ্ঞাটি এর সাথে প্রতিস্থাপন করুন x-=2। পরিবর্তে j, শুধু ব্যবহার করুন (y-2)
এম-ক্রিজান

হ্যাঁ, ধন্যবাদ :)
ডানিরো

2

পার্ল, 48 বাইট

এর জন্য +1 অন্তর্ভুক্ত -n

STDIN এ 2 লাইন হিসাবে আকার দিন

perl -nE 'say"|".$_ x($`-2)."|"for"-",($")x(<>-1-/$/),"-"'
3
8
^D

শুধু কোড:

say"|".$_ x($`-2)."|"for"-",($")x(<>-1-/$/),"-"

বরাবরের মতো ভালো লাগল। নোট করুন যে আপনি সম্ভবত একটি একক উক্তিটি লিখতে চাইলে লাইনের শেষে একটি ব্যাকটিক পেয়েছেন ;-)
দাদা

@ দাদা ফিক্সড ধন্যবাদ।
টন হসপেল

2

লুয়া, 120 93 বাইট

জটিলতার উপর মূ .়তা সরিয়ে বেশ কয়েকটি বাইট সংরক্ষণ করা।

function(w,h)function g(s)return'|'..s:rep(w-2)..'|\n'end b=g'-'print(b..g' ':rep(h-2)..b)end

Ungolfed:

function(w,h)                           -- Define Anonymous Function
    function g(s)                       -- Define 'Row Creation' function. We use this twice, so it's less bytes to function it.
        return'|'..s:rep(w-2)..'|\n'    -- Sides, Surrounding the chosen filler character (' ' or '-'), followed by a newline
    end
    b=g'-'                              -- Assign the top and bottom rows to the g of '-', which gives '|---------|', or similar.
    print(b..g' ':rep(h-2)..b)          -- top, g of ' ', repeated height - 2 times, bottom. Print.
end

এটি Repl.it এ চেষ্টা করুন


1

পাইথন 2, 67 বাইট

def f(a,b):c="|"+"-"*(a-2)+"|\n";print c+c.replace("-"," ")*(b-2)+c

উদাহরণ

f(3,3)

|-|
| |
|-|

f(5,8)

|---|
|   |
|   |
|   |
|   |
|   |
|   |
|---|

f(10,3)

|--------|
|        |
|--------|

1

এমএটিএল , 21 17 বাইট

Z"45ILJhY('|'5MZ(

এটি এমএটিএল-গডের একটির চেয়ে কিছুটা ভিন্ন পদ্ধতি ।

Z"                   Make a matrix of spaces of the given size
  45ILJhY(           Fill first and last row with '-' (code 45)
          '|'5MZ(    Fill first and last column with '|' (using the automatic clipboard entry 5M to get ILJh back)

সমস্ত সহায়তার জন্য @ লুইস মেন্ডোকে ধন্যবাদ!

অনলাইনে চেষ্টা করে দেখুন!


1

পিএইচপি 4.1, 76 বাইট

<?$R=str_repeat;echo$l="|{$R('-',$w=$W-2)}|
",$R("|{$R(' ',$w)}|
",$H-2),$l;

এটি ধরে নিয়েছে এবং সক্ষম ও সক্ষম php.iniসহ এই সংস্করণটির জন্য আপনার ডিফল্ট সেটিংস রয়েছে assshort_open_tagregister_globals

এটির জন্য একটি ওয়েব সার্ভারের মাধ্যমে অ্যাক্সেসের প্রয়োজন (যেমন: অ্যাপাচি), সেশন / কুকি / পোষ্ট / জিইটি ভেরিয়েবলের মাধ্যমে মানগুলি পাস করা।
কীটি Wপ্রস্থকে নিয়ন্ত্রণ করে এবং কীটি Hউচ্চতা নিয়ন্ত্রণ করে।
উদাহরণ স্বরূপ:http://localhost/file.php?W=3&H=5


@ টিটাস আপনার লিঙ্কটি পড়া উচিত। উদ্ধৃতি: "পিএইচপি ৪.২.০ হিসাবে, এই নির্দেশিকা ডিফল্ট অফ অফ "।
ইসমাইল মিগুয়েল

খুব দুঃখিত আমি সবকিছু ফিরিয়ে নিয়েছি। আপনার শিরোনামে সংস্করণ রয়েছে। আমার আরও মনোযোগ সহকারে পড়া উচিত।
তিতাস

@ টিটাস ঠিক আছে, চিন্তা করবেন না। আপনার উপর কঠোর হওয়ার জন্য দুঃখিত।
ইসমাইল মিগুয়েল

কিছু মনে করো না; পেডেন্টিক হওয়ার জন্য আমি যে মূল্য দিচ্ছি তা ´ : ডি
টাইটাস

@ টিটাস এটি সম্পর্কে চিন্তা করবেন না। ঠিক তাই আপনি জানেন, আমার উত্তর প্রায় অর্ধেক পিএইচপি 4.1 লিখিত আছে। এটি ইনপুট সহ টন বাইট সংরক্ষণ করে
ইসমাইল মিগুয়েল

1

পাইথন 3, 74 টি অক্ষর

p="|"
def r(w,h):m=w-2;b=p+"-"*m+p;return b+"\n"+(p+m*" "+p+"\n")*(h-2)+b

1

সুইফ্ট (২.২) 190 বাইট

let v = {(c:String,n:Int) -> String in var s = "";for _ in 1...n {s += c};return s;};_ = {var s = "|"+v("-",$0-2)+"|\n" + v("|"+v(" ",$0-2)+"|\n",$1-2) + "|"+v("-",$0-2)+"|";print(s);}(10,5)

আমি মনে করি সুইফট 3 এটিকে আরও অনেক বেশি গল্ফ করতে পারে তবে আমি সুইফট 3 ডাউনলোড করার মতো মনে করি না।


1

এফ #, 131 বাইট

let d x y=
 let q = String.replicate (x-2)
 [for r in [1..y] do printfn "%s%s%s" "|" (if r=y||r=1 then(q "-")else(q " ")) "|"]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.