E এর সাথে চিঠিটি


19

আপনার কাজটি হ'ল নীচের অক্ষরটি "E" আকারের ASCII আর্ট দেওয়া, পাঁচটি ইনপুট দেওয়া।

উদাহরণ:

ইনপুট: 7,2,+,|,-(দ্রষ্টব্য: আপনাকে এই সঠিক ইনপুট ফর্ম্যাটটি অনুসরণ করতে হবে না এবং যদি আপনি এটি ব্যবহার না করেন তবে আপনাকে অবশ্যই নিজের ইনপুট ফর্ম্যাটটি কীভাবে কাজ করবে তা ব্যাখ্যা করতে হবে)

ব্যাখ্যা:

  • 7 বাম এবং ডান প্রান্ত অক্ষর সহ মোট প্রস্থ।

  • 2 উল্লম্ব অক্ষরের সংখ্যা।

  • + যে অক্ষরটি প্রান্তে প্রদর্শিত হবে।

  • | যে অক্ষরটি প্রান্তগুলির মধ্যে উল্লম্বভাবে প্রদর্শন করা উচিত।

  • - অনুভূমিকভাবে প্রদর্শিত হওয়া উচিত এমন চরিত্র।

উপরের উদাহরণটির আউটপুট:

+-----+ 
|
|
+-----+
|
|
+-----+


অন্যান্য উদাহরণ:

ইনপুট: 7,2,@,|,-

আউটপুট:

@-----@
|
|
@-----@
|
|
@-----@


ইনপুট: 7,2,+,|,#

আউটপুট:

+#####+
|
|
+#####+
|
|
+#####+


ইনপুট: 8,3,+,|,#

আউটপুট:

+######+
|
|
|
+######+
|
|
|
+######+


ইনপুট: 8,3,+,@,#

আউটপুট:

+######+
@
@
@
+######+
@
@
@
+######+


ইনপুট: 9,4,^,$,!

আউটপুট:

^!!!!!!!^
$
$
$
$
^!!!!!!!^
$
$
$
$
^!!!!!!!^


প্রতারণা এবং মানক লুফোলগুলি অনুমোদিত নয়।

আপনার কোড অবশ্যই এসটিডিআরআর তে কিছু মুদ্রণ করবে না।

আপনার কোড আপনাকে যে কোনও অক্ষর এনকোডিংটি ইনপুট হিসাবে বেছে নিতে পারে তা গ্রহণ করতে পারে তবে আপনি যে কোনও অক্ষর এনকোডিং চয়ন করেন, অবশ্যই সর্বনিম্ন হিসাবে সমস্ত 95 মুদ্রণযোগ্য ASCII অক্ষর সমর্থন করে।

সংক্ষিপ্ততম কোড, বাইটে, যা এই চ্যালেঞ্জটি সফলভাবে শেষ করে, এটি হচ্ছে বিজয়ী কোড।

লিডারবোর্ড


27
'কোনও ইনপুট দেওয়া হয়নি' এর বিশেষ ক্ষেত্রে আমি অপছন্দ করি। আমার মতে, এটি চ্যালেঞ্জটিতে কিছু যুক্ত করে না এবং কিছুই করার জন্য অনেক জটিল করে তোলে।
Yytsi

3
শিরোনামটি কি আপনি Eইনপুট হিসাবে দিতে এবং এস Eদিয়ে একটি তৈরি করতে পারেন E?
ট্রিকোপল্যাক্স

3
তা সত্ত্বেও আমি এটি অপছন্দ করি, 'ইনপুট' আসলে কী বোঝায়? আপনি যদি ইনপুটটি পাস না করেন তবে আমার ফ্লোরয়েড সলিউশনটি বাকী চিরন্তন জন্য স্থির থাকবে। আমার সমাধানটি প্রতিযোগিতামূলক হওয়ার জন্য, আপনাকে 5 টি শূন্য পাস করতে হবে এবং আমাকে ইনপুটগুলি শূন্য কিনা এবং সেই অনুযায়ী চিকিত্সা করতে হবে ...? -1।
Yytsi

4
@ দ্য বিটবাইট আমার দ্বিতীয় মন্তব্যটি দেখুন যা আমি মনে করি এটির সাথে আসলেই কী ভুল। এখন আপনি এটি সম্পাদনা করেছেন, +1।
Yytsi

1
@ কেভিন ইয়ুপ 'ইনপুট নয়' এর ব্যাখ্যার সাথে আমার কিছুটা বিভ্রান্তি ছিল। খালি স্ট্রিং আমার মনে 'কোনও ইনপুট নয়' সমান। এবং আমি এতদ্বারা একটি দোভাষীর অভ্যন্তরে কোড চালানোর জন্য অভ্যস্ত ছিলাম, যার উপর আমি আক্ষরিকভাবে ইনপুটটি খাওয়ানোর জন্য অপেক্ষা করি, তাই সে কারণেই আমি এটি সেখানে ফেলে দিয়েছি।
Yytsi

উত্তর:


6

05 এ বি 1 ই , 16 14 বাইট

Í×s.ø©|`×`»D®»

ব্যাখ্যা

Í×                  # create a string of the correct nr of horizontal chars
  s.ø               # add the corner char on both sides
     ©              # save in register while keeping it on the stack
      |`            # push the remaining inputs to the top of the stack
        ×`          # push the correct nr of vertical chars on the stack
          »         # join on newline (joining the top vertical and horizontal sections)
           D        # duplicate this
            ®       # push the horizontal part again
             »      # join everything on newline

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

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


1
কৌতূহলের বাইরে আপনি কেন ©রেজিস্টারটি ব্যবহার করছেন : পি?
আদনান

1
@ আদনান: ভাল ধরা! আমি যাচ্ছি, তবে এটি ব্যবহার না করে শেষ হয়ে গিয়েছিলাম এবং এটি সরিয়ে দিতে ভুলে
গিয়েছি

1
@ মুদ্দিফিশ: প্রশ্নটি থেকে অংশটি পড়ে বোঝা গেল যে অংশটি সুস্পষ্ট ছিল না, তাই আমি এটি মিস করেছি। আমাকে জানতে দেওয়ার জন্য ধন্যবাদ!
এমিগিনা

1
এছাড়া একটি বিশেষ পারিপার্শ্বিক কমান্ড যা এখানে কাজ করে: Í×s.øU×S»X»D»Xr»
আদনান

2
@ আদনান: ঠিক আছেন আপনি। ভাল চিন্তা! আমি এর আগে কখনও ব্যবহার করিনি :)
এমিগিনা

6

পাইথন, 53 51 55 বাইট

lambda a,b,c,d,e:d.join("\n"*-~b).join([c+e*(a-2)+c]*3)

+4 বাইটস @ নিমিকে ধন্যবাদ

নামহীন লাম্বদা ফাংশন, এটি কল করার f=আগে, এটি লিখুন । উদাহরণ:

>>> print f(4,1,"€","|","-")
€--€
|
€--€
|
€--€

বিকল্প, 53 বাইট

lambda a,b,c,d,e:((c+e*a+c+"\n"+(d+"\n")*b)*3)[:-b*2]

কোনও ইনপুট বিশেষ ক্ষেত্রে সহ পুরানো সংস্করণ, 69 65 63 বাইট

হ্যাঁ প্রয়োজনীয়তা মিড চ্যালেঞ্জ পরিবর্তন করতে ...

lambda a=1,b=1,(c,d,e)="+|-":d.join("\n"*-~b).join([c+e*a+c]*3)

2
ছোট বাগ: প্রথম যুক্তি ( 2আপনার উদাহরণে) কোণার সহ লাইনটির মোট দৈর্ঘ্য, সুতরাং আপনার আকারের জন্য সঠিক ইনপুট f(4,1 ...)
নিমি

@ নিমি টিপটির জন্য ধন্যবাদ। (+4 বাইট :() Ops প্রথম উদাহরণে একটি বিট বিভ্রান্তিকর (অন্যান্য কিছু প্রশ্নের উত্তর দিয়েছেন এই বাগ aswell থাকে)।
KarlKastor

4

সি, 167 161 159 বাইট

হ্যাঁ।

#define p putchar
i,j;g(a,c,e){p(c);for(i=2;i++<a;)p(e);p(c);p(10);}h(b,d){for(i=0;i++<b;){p(d);p(10);}}f(a,b,c,d,e){g(a,c,e);h(b,d);g(a,c,e);h(b,d);g(a,c,e);}

কিছু পরীক্ষার ক্ষেত্রে আইডিয়নে এটি ব্যবহার করে দেখুন


2
("") -> পি ('\ n') রাখে? বা এমনকি পি (10) যদি এটি কাজ করে তবে
রিয়াড

কীভাবে মিস করলাম! ধন্যবাদ, @ রিয়াড
betseg

এছাড়াও আপনি যদি 2 দিয়ে লুপ শুরু করেন তবে আপনি আরও বাইটে সংরক্ষণ করতে পারবেন
RiaD

3

রুবি, 54 45 42 বাইট

->x,y,c,v,h{[c+h*~-~-x+c+$/]*3*((v+$/)*y)}

এটি একটি বেনাম ফাংশন যা ইনপুটটির বিভিন্ন অংশকে পৃথক প্যারামিটার হিসাবে গ্রহণ করে এবং ফলাফলটিকে সম্পূর্ণ স্ট্রিং হিসাবে ফিরিয়ে দেয়।

উদাহরণ স্বরূপ,

f=->x,y,c,v,h{[c+h*~-~-x+c+$/]*3*((v+$/)*y)}
puts f[6, 2, 'Ø', 'V', '>']

কপি করে প্রিন্ট

Ø>>>>Ø
V
V
Ø>>>>Ø
V
V
Ø>>>>Ø

3

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

(h,v,e,V,H)=>(v=(h=e+H.repeat(h-2)+e)+`
${V}`.repeat(v)+`
`)+v+h

উদাহরণ

let f =
(h,v,e,V,H)=>(v=(h=e+H.repeat(h-2)+e)+`
${V}`.repeat(v)+`
`)+v+h

console.log(f(8,3,'+','@','#'))


এটি কোনও ইনপুটটির বিশেষ ক্ষেত্রে পরিচালনা করে না?
কনর ওব্রায়েন

{ "message": "Script error.", "filename": "", "lineno": 0, "colno": 0 }যখন ইনলাইন চালান।
noɥʇʎԀʎzɐɹƆ

@ অ্যাজেন্টক্রাজি পাইথন - আইই চালাবেন? এটা কোন সমর্থন আছে জন্য.repeat()
Arnauld

@Arnauld নও, Safari
noɥʇʎԀʎzɐɹƆ

ওহ, এটি ES6 ...
noɥʇʎԀʎzɐɹƆ


3

আর, 80 বাইট

সুন্দর পুনরাবৃত্তি:

function(h,v,a,b,c)cat(t<-c(a,rep(c,h),a,"\n"),d<-rep(c(b,"\n"),v),t,d,t,sep="")

অসমাপ্ত:

function(h,v,a,b,c)

cat(t<-c(a,rep(c,h),a,"\n"),
    d<-rep(c(b,"\n"),v),
    t,d,t,
    sep="")


2

পাইথ, 19 বাইট

jP*3,++Jw*-E2wJj*Ew

একটি প্রোগ্রাম যা কোণার চরিত্রের STDIN এ নিউলাইন-বিভক্ত ইনপুট নেয়, অনুভূমিক অক্ষরের সংখ্যা, অনুভূমিক অক্ষর, উল্লম্ব বর্ণগুলির সংখ্যা এবং উল্লম্ব বর্ণের সংখ্যা এবং ফলাফল মুদ্রণ করে।

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

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

jP*3,++Jw*-E2wJj*Ew  Program.
       Jw            Get the corner character. Store in J
           E         Get the number of horizontal characters
          - 2        -2
         *   w       Get the horizontal character and repeat it that many times
      +              Add J at the beginning of that
     +         J     and at the end
                 E   Get the number of vertical characters
                * w  Get the vertical character and repeat it that many times
               j     Join the above on newlines
    ,                Construct a 2-element list from the horizontal and vertical strings
  *3                 Repeat it 3 times
 P                   Everything except the last element
j                    Join the above on newlines
                     Implicitly print

2

ম্যাটল্যাব, 95 92 91 85 81 বাইট

ম্যাটল্যাব 'ই' ফাংশন। (সম্পাদনা: অক্টাভেতে কাজ করে না)

function a=e(n,m,c,h,v);a(1:n)=h;a=[c a c];a(2:m+1,1)=v;a=[a;a;a];a=a(1:3+2*m,:);

এবং অবরুদ্ধ:

function a=e(n,m,c,h,v); %Declare the function
a(1:n)=h;                %Initialise return with top line excluding the corners
a=[c a c];               %Then add corner pieces
a(2:m+1,1)=v;            %Next add the first vertical part
a=[a;a;a];               %Repeat three times vertically to get an E with a tail
a=a(1:3+2*m,:);          %And then lop off the tail

ফাংশনটি যেমন বলা উচিত:

e(5,2,'*','-','|')

যা ফিরে আসবে:

+-----+
|      
|      
+-----+
|      
|      
+-----+

এটি সম্ভবত কিছুটা সহজ করা যেতে পারে, আমি এটিতে কাজ করে যাব। ইনপুটটি পেতে পুরো ফাংশন ঘোষণাটি আমার পছন্দ হয় না, তাই আমি এটি উন্নত করতে পারি কিনা তা দেখতে পাবে।


  • প্রথমে কোনার ছাড়াই লাইনটি তৈরি করার জন্য প্রথম লাইনটির প্রজন্মকে সহজতর করে 3 বাইট সংরক্ষণ করা হয়েছে এবং এরপরে কোণগুলি যুক্ত করুন কারণ এটি সূচীকরণের প্রয়োজনীয় সংখ্যাকে হ্রাস করে।

  • প্রথম কোণে শুরু করে আরেকটি বাইট সংরক্ষণ করা হয়েছে।

  • repmat(a,3,1)কলটি প্রতিস্থাপন করে আরও 6 টি বাইট [a;a;a]

  • aনির্দিষ্ট সূচনা না করে 4 বাইট সংরক্ষণ করা হয়েছে (এটি ইতিমধ্যে ফাংশন ঘোষণায় ঘোষণা করা হয়েছে) - ধন্যবাদ @ লুইস মেন্ডো


1
@ লুইস মেন্ডো আকর্ষণীয় আমি মূলত a=[c a c]সেখানে ছিলাম তবে জিনিসগুলি সঙ্কুচিত করার জন্য এটিকে সরিয়ে দিয়েছি কারণ আপনি সাধারণত অস্তিত্বের পরিবর্তনশীলকে অ্যাক্সেস করতে এবং প্রক্রিয়াতে এটি তৈরি করতে পারবেন না। আমি ভুলে গিয়েছিলাম যে এটি একটি ফাংশন তাই aফাংশন ঘোষণায় রিটার্নের মান হিসাবে ইতিমধ্যে ঘোষণা করা হয়েছে। ধন্যবাদ :)
টম কার্পেন্টার

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

2

পার্ল, 40 + 1 ( -n) = 41 বাইট

14 টি বাইট সংরক্ষণ এবং 10 টিরও বেশি প্রবেশের সাথে প্রোগ্রামটি কাজ করার জন্য @ টন হসপেলকে ধন্যবাদ জানাই

/.$/;$,=$/.<>x<>;say+($`.$&x(<>-2).$`)x3

প্রয়োজনের -n সেইসাথে -E(অথবা -M5.010) চালানোর জন্য। এই ক্ষেত্রে :

perl -nE '/.$/;$,=$/.<>x<>;say+($`.$&x(<>-2).$`)x3' <<< '^$
!
4
9'

1
@ দ্য বিটবাইট ঠিক আছে, সম্পন্ন হয়েছে, ধন্যবাদ।
দাদা

2
এটি ইতিমধ্যে খুব ভাল। তবে আপনি ইনপুট বিন্যাসের সাথে কিছুটা খেলতে পারেন এবং সেই ত্রুটিটিও সমাধান করতে পারেন যা চ্যালেঞ্জটি বলে না যে পুনরাবৃত্তিগুলি কোনও ফাইল < 10স্থাপন /(.)(.)/;$,=$' x<>;say+($1.$2x(<>-2).$1.$/)x3করে (যেহেতু এটি ব্যবহার করে $') এবং কল করে perl -M5.010 -n prog.pl <<< '^!S\n4\n9'(রিয়েল নিউলাইনগুলি ব্যবহার করে) যা 48 বাইট হিসাবে গণনা করা হয় (2 অতিরিক্ত প্রতিবন্ধী যেহেতু এটি একত্রিত করা যায় না -e)
টন হসপেল

@ টনহোপেল ধন্যবাদ ঠিক আছে, আমি এমনকি লক্ষ্য করেছি না যে এটি সংখ্যার সাথে কাজ করবে না >10.. ইনপুট ফর্ম্যাট সহ দুর্দান্ত কাজ, ধন্যবাদ।
দাদা

এটি ইনপুট ফর্ম্যাটটি নির্বাচন করার স্বাধীনতার অপব্যবহারের কাছাকাছি চলেছে, তবে: perl -nE '/.$/;$,=$/.<>x<>;say+($`.$&x(<>-2).$`)x3' <<< '^$\n!\n4\n9'এটি 41 বাইট (আর নেই $') এবং
স্পিউরিয়াস ট্রেলিং নিউলাইনটি থেকে মুক্তি পেতে পারে

@ টনহসপেল সত্যই, আপনার প্রথম পরামর্শের পরে আমি সেই সমাধানটি নিয়ে এসেছি, তবে ইনপুট ফর্ম্যাটটির কারণে আমি এতে খুব বেশি স্বাচ্ছন্দ্য বোধ করি না ... যেহেতু আমরা দুজনেই এটি সম্পর্কে ভেবেছিলাম, আমি আমার উত্তর পরিবর্তন করেছি, তবে এখনও আমার মনে হচ্ছে এটি কিছুটা ছলছল ...
দাদা

2

ডায়ালগ এপিএল , 31 29 বাইট

অনুভূমিক-অক্ষর, প্রস্থ, জংশন-চরিত্র, উচ্চতা, উল্লম্ব-অক্ষর - এই ক্রমের জন্য প্রম্পটগুলি।

h↓⊃⍪/3/⊂↑(⍞⍴⍨h←⎕),⊂⍞{∊⍺⍵⍺}⎕⍴⍞

⎕⍴⍞ ইনপুট-অনুভূমিক-অক্ষর এবং ইনপুট-প্রস্থের পুনরাবৃত্তি ( নীচে)

⍞{... }ইনপুট-জংশন-চরিত্র যা হবে ফাংশনে ...

∊⍺⍵⍺ সমতল [[জংশন], [অনুভূমিক], [জংশন]]

encapsulate যাতে এটি একটি তালিকার অংশ হতে পারে

(...), প্রিপেন্ড ...

h←⎕ ইনপুট-উচ্চতা

⍞⍴⍨ ইনপুট-উল্লম্ব-অক্ষর এবং এটি বহুবার পুনরাবৃত্তি করুন

একটি অক্ষর সারণীতে স্ট্রিংয়ের তালিকা তৈরি করুন

encapsulate (যাতে এটি সম্পূর্ণরূপে পুনরাবৃত্তি করা যেতে পারে)

3/ এটি তিনবার পুনরাবৃত্তি করুন

    
┗━ ┗━ ┗━

⍪/ তিনটি টুকরা উল্লম্বভাবে সংযুক্ত করুন


┣━
┣━
┗━

(এটি তাদেরকেও সংযোজন করে তোলে, তাই আমাদের প্রয়োজন ...)

এনক্যাপসুলেশন সরান

h↓প্রথম ঘন্টা (সারি) ফেলে দিন

┏━
┣━
┗━

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


2

সি, 130 বাইট

#define p putchar
#define E for(o=0;o++<O;p(10))p(S);
#define W for(p(P),D=0;D++<C-2;)p(_);p(P);p(10);
f(C,O,P,S,_,D,o){W E W E W}

ব্যবহার:

main(){f(7,2,'+','|','-');}

আউটপুট

+-----+
|
|
+-----+
|
|
+-----+

সেমিকোলনগুলি defineএস এ সরিয়ে এটিকে f(C,O,P,S,_,D,o){W;E;W;E;W;}বাইট সংরক্ষণ করে।
betseg

2

সি #, 108 বাইট

(m,n,e,v,h)=>{string x=e+new string(h,m-2)+e+"\n",y=new string(v,n).Replace(v+"",v+"\n");return x+y+x+y+x;};

বেনামে ফাংশন যা প্রতিটি অনুভূমিক এবং উল্লম্ব লাইন উত্পন্ন করে এবং চূড়ান্ত আউটপুট তৈরি করে।

অব্যাহত ফাংশন:

(m,n,e,v,h)=>
{
    string x = e + new string(h, m - 2) + e + "\n",
        y = new string(v, n).Replace(v + "", v + "\n");
    return x + y + x + y + x;
};

পরীক্ষার কেস সহ সম্পূর্ণ প্রোগ্রাম:

using System;

namespace LetterEWithoutE
{
    class Program
    {
        static void Main(string[] args)
        {
            Func<int,int,char,char,char,string>f= (m,n,e,v,h)=>{string x=e+new string(h,m-2)+e+"\n",y=new string(v,n).Replace(v+"",v+"\n");return x+y+x+y+x;};

            Console.WriteLine(f(7,2,'+','|','-'));
            Console.WriteLine(f(7,2,'@','|','-'));
            Console.WriteLine(f(7,2,'@','|','#'));
            Console.WriteLine(f(8,3,'+','|','#'));
            Console.WriteLine(f(8,3,'+','@','#'));
            Console.WriteLine(f(9,4,'^','$','!'));
        }
    }
}

2

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

সংশোধনের জন্য @ মুদ্দিফিশকে ধন্যবাদ

2-Y"yv!iiY"!yyy

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

ব্যাখ্যা

প্রতি পদক্ষেপের পরে স্ট্যাকের সামগ্রীগুলি চ্যালেঞ্জের প্রথম উদাহরণ ব্যবহার করে স্বচ্ছতার জন্য নির্দেশিত হয় indicated

2-    % Implicitly input number of repetitions of the char of the horizontal line.
      % Subtract 2
      %   STACK: 5
Y"    % Implicitly input char of the horizontal line. Apply run-length decoding
      %   STACK: '-----' (string)
y     % Implicitly input (from below) the char of the corners. Duplicate onto the top
      %   STACK: '+', '-----', '+'
v!    % Concatenate all the stack horizontally. We now have the horizontal line
      % including the corners
      %   STACK: '+-----+'
iiY"  % Take two inputs: char of the vertical line and number of repetitions
      %   STACK: '+-----+', '||'
!     % Transpose. This tranforms the string into a vertical char array, which
      % gives the vertical line
      %   STACK: '+-----+', ['|';'|'] (vertical char array)
y     % Duplicate from below: this pushes a new copy of the horizontal line
      % onto the top of the stack
      %   STACK: '+-----+', ['|';'|'], '+-----+'
y     % Duplicate from below: this pushes a new copy of the vertical line
      % onto the top of the stack
      %   STACK: '+-----+', ['|';'|'], '+-----+', ['|';'|'],
y     % Duplicate from below: this pushes a new copy of the horizontal line
      % onto the top of the stack
      %   STACK: '+-----+', ['|';'|'], '+-----+', ['|';'|'], '+-----+'
      % Implicitly display

1

বাশ + কোর্টিলস, 105 বাইট

printf -- "$3`printf -- "$4%.0s" $(seq $1)`$3`printf "\n$5%.0s" $(seq $2)`%.0s\n" {1..3}|sed -n 1,$(($2*2+3))p

যে ফাইলটির মধ্যে এটি সঞ্চিত আছে তার নাম দেওয়া হয়েছে তা ধরে A.shনিলে ব্যবহারটি হবে:

bash A.sh <Horizontal Segment Length w/out Edge Chars> <Vertical Segment Length> '<Left/Right Edge Char>' '<Char Between Edges>' '<Vertical Char>'

--প্রয়োজন হয়, ধরো যদি চরিত্র ইনপুট একজন হতে হবে -, এবং printfদৃশ্যত একটি স্ট্রিং ছাড়া ডাবল ড্যাশ খুব সুন্দর প্রারম্ভে ড্যাশ হ্যান্ডেল নেই।

ব্যাখ্যা

ধরে নিচ্ছি যে ইনপুটটি 5 2 + * |...

  1. $3printf -- "$4%.0s" $(seq $1)$3printf "\n$5%.0s" $(seq $2)

    প্রথম অনুভূমিক বিভাগ এবং উল্লম্ব বিভাগটি একসাথে তৈরি করুন। এর ফলস্বরূপ:

    +*****+
    |
    |
    
  2. printf -- "$3printf -- "$4%.0s" $(seq $1)$3printf "\n$5%.0s" $(seq $2)%.0s\n" {1..3}

    পূর্বে নির্মিত অংশ 3বার পুনরাবৃত্তি । এটি এখন ফলাফল:

    +*****+
    |
    |
    +*****+
    |
    |
    +*****+
    |
    |
    
  3. printf -- "$3printf -- "$4%.0s" $(seq $1)$3printf "\n$5%.0s" $(seq $2)%.0s\n" {1..3}|sed -n 1,$(($2*2+3))p

    sedশেষের 2 টি প্রথম <Vertical Segment Length>*2+3লাইন আউটপুট দিয়ে শেষ 2 রেখাংশগুলি থেকে মুক্তি পেতে অবশেষে পূর্ববর্তী আউটপুটটি পাইপ করুন E। শেষ পর্যন্ত Eআমরা যা চাই তা পাই:

    +*****+
    |
    |
    +*****+
    |
    |
    +*****+
    

1

পাওয়ারশেল ভি 2 +, 60 59 বাইট

param($a,$b,$c,$d,$e)(,($x="$c$($e*($a-2))$c")+,$d*$b)*2;$x

স্বতন্ত্র কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয়। অনুভূমিক স্ট্রিং তৈরি করে, $xপরে ব্যবহারের জন্য স্টোর করে , তারপরে সেটিকে কমা-অপারেটরের সাথে অ্যারে রূপ দেয় ,। উপাদানগুলির $dএকটি অ্যারেতে তৈরি করা অ্যারে কনটেনটেশন (অর্থাত্‍, শেষে উপাদান যুক্ত করা) সম্পাদন $bকরে। এটি, পরিবর্তে, অন্য কমা অপারেটর সহ দুটি উপাদানের একটি অ্যারে হিসাবে সূচিত হয় এবং পাইপলাইনে রেখে যায়। তারপরে, অনুভূমিকটি $xপাইপলাইনে রেখে দেওয়া হয়েছে। এর ডিফল্ট বিন্যাস অপব্যবহারWrite-Outputউপাদানগুলির মধ্যে একটি নতুন লাইন স্থাপনের ।

উদাহরণ

PS C:\Tools\Scripts\golfing> .\the-letter-e-without-e.ps1 5 3 "z" "v" "d"
zdddz
v
v
v
zdddz
v
v
v
zdddz


1

ব্রেইনফ * সিকে, 147 বাইট

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

প্রথম 5 টি অক্ষর প্রবেশ করায় স্টিডিন থেকে ইনপুট নেয় T প্রথম দুটি তাদের ASCII কোড থেকে 48 বিয়োগ করে তাই 0-9 প্রত্যাশার মতো আচরণ করে। সংখ্যা> 9 এর জন্য, সংখ্যায় 48 যুক্ত করুন এবং সংশ্লিষ্ট অক্ষরটি ব্যবহার করুন। অন্য তিনটি চরিত্র চ্যালেঞ্জ হিসাবে নির্দিষ্ট করা হয়েছে।

আমি নিশ্চিত এটি সর্বোত্তম সমাধান নয় তবে গল্ফ ব্রেইনফ * সিকে থেকে জীবন খুব কম।

মন্তব্য সহ:

[
    Input: number number corner vertical horizontal
    Numbers are single digits; add 48 and use the ASCII character corresponding
    to the number you want for numbers > 9.
    First number is the number of characters across. Second is the number down.

    Layout: {first number-2} {second number} {temp} {a} {b} {c}
]

,>,>++++++++[<------<------>>-]<<-->>>,>,>,
now we should have the first five cells with the specified layout
the 6th will hold 3 as a counter and the 7th 2 and the 8th 10 '\n'

>+++>++>++++++++++<<
[  while the 6th cell is not 0
    -
    <<<.    print corner
    <<<[->>+>>>.<<<<<]  print horizontal characters
    >>[-<<+>>]         copy temp back to 1st cell
    >.>>>>>.           print corner and newline
    <
    [ If the second counter is not zero
        -
        <<<<<<[->+>>.>>>>.<<<<<<<]  print vertical and newline n times
        >[<+>-]           copy temp back to 2nd cell
    ]
    >>>>
]

উদাহরণ রান:

sean@SEANSBOX:~/Dropbox/Code/BF$ ./bf E.b
94^$!
^!!!!!!!^
$
$
$
$
^!!!!!!!^
$
$
$
$
^!!!!!!!^

1

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

list(,$w,$h,$c,$v,$r)=$argv;echo$b=str_pad($a=str_pad($c,++$w,$r)."$c\n",--$h*2+$w,"$v\n"),$b,$a;

কোনও লুপ নয়, কেবল বিল্টিনস।

সাথে চালাও php -r '<code>' <parameters>


1

জাভা 7, 205 129 বাইট

String c(int w,int h,String a,char b,char c){String r=a,n="\n",l="";for(;w-->2;r+=c);r+=a+n;for(;h-->0;l+=b+n);return r+l+r+l+r;}

-76 by বাইট একটি বেনামে অপরিচিত ব্যক্তিকে ধন্যবাদ।
PS: পরের বারে অন্য ব্যক্তির পোস্টগুলি সম্পাদনা করবেন না। আপনার যদি গল্ফের কিছু থাকে তবে দয়া করে এটি একটি মন্তব্য হিসাবে রেখে দিন বা যদি এটি সম্পূর্ণ ভিন্ন পদ্ধতির ব্যবহার করে তবে আপনি নিজের উত্তরটি তৈরি করতে পারেন। এখনও এই সমস্ত বাইটগুলি গলফ করার জন্য ধন্যবাদ, যদিও - আপনি যে কেউ ..

অবহেলিত ও পরীক্ষার কেস:

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

class M {
    static String c(int w, int h, String a, char b, char c){
        String r = a,
               n = "\n",
               l = "";
        for(; w-- > 2; r += c);
        r += a+n;
        for( ;h-- > 0; l += b+n);
        return r+l+r+l+r;
    }

    public static void main(String[] a) {
        System.out.print(c(7, 2, "+", '|', '-'));
        System.out.print(c(9, 4, "?", '¡', '¿'));
    }
}

আউটপুট:

+-----+
|    
|    
+-----+
|    
|    
+-----+

?¿¿¿¿¿¿¿?
¡      
¡      
¡      
¡      
?¿¿¿¿¿¿¿?
¡      
¡      
¡      
¡      
?¿¿¿¿¿¿¿?

0

র‌্যাকেট 124 বাইট

(λ(w h a b c)(for((i 3))(display a)(for((i w))(display c))(display a)(when(< i 2)(displayln "")(for((j h))(displayln b)))))

আরও পঠনযোগ্য ফর্ম:

(define(f w h a b c)
  (for((i 3))
    (display a)
    (for((i w))
      (display c))
    (display a)
    (when(< i 2)
      (displayln "")
      (for((j h))
        (displayln b)))))

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

(f 7 2 "+" "|" "-" )

+-------+
|
|
+-------+
|
|
+-------+

0

সি ++, 121 বাইট

#import<string>
#import<iostream>
#define f(w,h,C,W,H){std::string s(w,W),t;s=C+s+C+"\n";for(int i=h;i--;)t=t+H+"\n";std::cout<<s+t+s+t+s;}

Ungolfed:

#import<string>
#import<iostream>
#define f(w,h,C,W,H){
    std::string s(w,W),t;  //define two strings, one empty, one with horizontal characters
    s = C+s+C+"\n";        //assemble a horizontal bar
    for(int i=h;i--;) 
        t=t+H+"\n";        //assemble a vertical bar
    std::cout<<s+t+s+t+s;  //print
}

সি ++ তে এটি সি হিসাবে টাইপ ছাড়াই ফাংশনগুলি ঘোষণা করার অনুমতি নেই তবে ম্যাক্রোগুলি যে কোনও ফাংশনের মতো আচরণ করে তা সম্পূর্ণ সম্ভব। এও নোট করুন যে অরগোল্ফ করা সংস্করণ সংকলন করবে না যতক্ষণ না আপনি প্রত্যেকটিতে একটি "\" যোগ করেন তবে ম্যাক্রোর শেষ লাইন। আপনি {removing মুছে ফেলে আরও দুটি অতিরিক্ত বাইট সংরক্ষণ করতে পারেন, তবে তারপরে আপনি পরপর দুবার ম্যাক্রো ব্যবহার করতে পারবেন না।

ব্যবহার:

int main() {
    f(4,2,'+','-','|')
    f(2,1,'@','#','i')
    return 0;
}

আউটপুট:

+----+
|
|
+----+
|
|
+----+
@##@
i
@##@
i
@##@

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


0

সিজেম , 23 বাইট

riri)N*r2*\r*\@r**a3*\*

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

ইনপুট প্রদত্ত ক্রমে রয়েছে তবে কমা ব্যবহার না করে স্থান পৃথক করা উচিত। সিজেমের যোগদানের ক্রিয়াকলাপের* জন্য কিছুটা অসুবিধা ইনপুটটিকে সঠিক ক্রম পেয়েছে ; তুলনা করার জন্য ইনপুটটিকে পুনরায় সাজানো 4 বাইট সংরক্ষণ করতে পারে

যদি ইনপুটগুলি ডাব হয় A B C D Eতবে প্রোগ্রামটি এরকম কিছু কাজ করে:

ri     e# get A as integer
ri)N*  e# create B+1 newlines
r2*    e# create 2 Cs
\r*    e# join newlines with D (hereafter ND)
\@     e# bring A & Cs to the front
r*     e# create A Es
*      e# join, puts Es between Cs (hereafter CEC)
a3*    e# makes 3 copies of CEC strings
\*     e# join, puts NDs between CECs

0

লুয়া (5.2), 144 বাইট

k,a,p,q=loadstring,arg,io.write,print l,d=k"for i=3,a[1]do p(a[5])end",k"for i=1,a[2]do q(a[4])end"b=a[3]p(b)l()q(b)d()p(b)l()q(b)d()p(b)l()p(b)

এটি অনলাইন চেষ্টা করুন! (কোডিং গ্রাউন্ড)

এখনই এরকম কিছু আউটপুট করা উচিত:

+@@@@@+
l
l
+@@@@@+
l
l
+@@@@@+

নিজস্ব ইনপুট: 7 2 + l @

আপনি প্রকল্প-> সংকলন বিকল্পগুলিতে ইনপুট পরিবর্তন করতে পারেন এবং সেখানে মানগুলি পরিবর্তন করতে পারেন, উদাহরণ হিসাবে প্রতিটি মান কিন্তু কমা দ্বারা পৃথক নয় তবে ফাঁকা স্থান দ্বারা পৃথক করা যায়।


0

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

::;;;X=A[q,a-2|X=X+C]X=X+A ?X[1,2|[1,b|?B]?X

ব্যাখ্যা

::;;;                 Get the input parameters, 2 numbers and 3 strings
X=A[q,a-2|X=X+C]X=X+A Build the horizontal string: The corner string, x-2 times the filler string and another corner
?X                    Print the horizontal string
[1,2|                 Do the next thing twice
[1,b|?B]?X            Print the right number of vertical strings, then the horizontal string.

0

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

<?list($v,$h,$p,$d,$r)=$_GET[a];for($h++;$i<=2*$h;)echo$i++%$h?$d:str_pad($p,$v-1,$r).$p,"\n";

ইনপুট প্রস্তাবিত স্ট্রিংয়ের মতো একই ক্রমে একটি অ্যারে ফর্ম্যাট করে


আপনি যদি এর ,"\n"পরিবর্তে ব্যবহার করেন তবে আপনি ."\n"পেরেনগুলি টর্নারিটির জন্য ফেলে দিতে পারেন।
টাইটাস

for($h++;$i<=2*$h;)এবং $i++%$hঅন্য বাইট সংরক্ষণ করে।
টাইটাস

$v-1এর জন্য কেবল 3 অনুভূমিক অক্ষর দেয় [5,2,+,|,-]বাম এবং ডান প্রান্ত অক্ষরগুলি সহ নয়, অনুভূমিক অক্ষরের সংখ্যা
তিতাস

@ টিটাস যে সঠিক, আমি আপনার সম্পাদনা রোলব্যাক করেছি। 5 অনুভূমিক অর্থ 2 প্রান্ত সহ 3 টি অক্ষর = 5. প্রশ্নটি দেখুন। এবং অন্যদের ধারণার জন্য আপনাকে ধন্যবাদ
জার্গ হালসারম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.