একটি সুন্দর বাক্স আউটপুট


17

আপনার চ্যালেঞ্জটি হ'ল নিম্নলিখিত বাক্সটি আউটপুট করা:

..................................................
..................................................
..                                              ..
..                                              ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..                                              ..
..                                              ..
..................................................
..................................................

বাক্সটি দৈর্ঘ্য 50 এবং প্রস্থ 50 স্পেস দুটি প্রশস্ত।

আপনাকে অবশ্যই একটি ফাংশন বা প্রোগ্রাম লিখতে হবে যা কোনও স্ট্রিং আউটপুট দেয় বা দেয় এবং কোনও ইনপুট নেয় না।

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


4
অভ্যন্তরীণতম +বাক্সে কেবল উপরে এবং নীচে 1 স্তর রয়েছে কেন কোনও কারণ ? এটি অ্যালগরিদম ভিত্তিক উত্তরগুলি কিছুটা দীর্ঘায়িত করবে, কারণ এর অর্থ হল অন্তঃস্থরের দুটি স্তর হুবহু বর্গক্ষেত্র নয়।
ইটিএইচ প্রডাকশনগুলি 13:38

@ পাভেল ঠিক আছে নিকট-ভোট প্রত্যাহার :)
ডিজিটাল ট্রমা

4
একটি সম্পূর্ণ প্রোগ্রামে বাধা কেন?
Rɪᴋᴇʀ

1
@ পাভেল কেন? এটি চ্যালেঞ্জের কাছে আসলে কিছুই যুক্ত করে না।
Rɪᴋᴇʀ

1
@ পাভেল ..... না আমি হ্যাঁ কারও কাছে এটি আছে তবে কেজি চ্যালেঞ্জগুলির জন্য এটি কোনও প্রয়োজন / মানদণ্ড নয়।
Rɪᴋᴇʀ

উত্তর:



14

জে , 25 বাইট

echo'. + '{~4|>./~2#|i:12

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

ব্যাখ্যা

echo'. + '{~4|>./~2#|i:12
                     i:12  Range from -12 to 12.
                    |      Take absolute values,
                  2#       duplicate every element,
                /~         compute "multiplication table"
              >.           using maximum,
            4|             take mod 4 of every element,
    '. + '{~               index into this string,
echo                       print char matrix for everyone to see.

আমি মনে করি আপনি প্রতিধ্বনি ছেড়ে দিতে পারেন।
কনার ও'ব্রায়ান

@ কনরও ব্রায়েন ওহ, আউটপুট নিয়ম পরিবর্তিত হয়েছে। ... হুম, তবে আমি সরিয়ে দিলে echoএটি এমনকি কোনও ফাংশন হবে না, কেবল একটি মান। যদিও জে-তে যাইহোক-আর্গুমেন্ট ফাংশন নেই।
Zgarb

আমি মনে করি এটি জে এর পুনরুদ্ধার প্রকৃতি অনুযায়ী অনুমোদিত। যে কোনও ক্ষেত্রে, ধ্রুবক কার্যগুলি শূন্য-যুক্তি হিসাবে বিবেচনা করা যেতে পারে।
কনর ও'ব্রায়ান

11

সি, 115 বাইট

#define M(x,y)x<(y)?x:y
f(i){for(i=2549;i;i--)putchar(i%51?". + "[(M(i%51-1,M(50-i%51,M(i/51,49-i/51))))/2%4]:10);}

একটি ফাংশন f(কল হিসাবে f();) সংজ্ঞা দেয় যা স্ট্রিংটি STDOUT এ মুদ্রণ করে।


9

সি, 535 478 477 বাইট

এখন এটি প্রচুর গল্ফ: - /

i;main(j){for(;++i<51;puts(""))for(j=0;++j<51;)putchar(i<3|i>48?46:j<3|j>48?46:i>4&i<47&j>4&j<47?i<7|(i>44&i<47)|(j>2&j<7)|(j>44&j<47)?43:j>8&j<43&((i>8&i<11)|(i>40&i<43))?46:i>9&i<41&((j>8&j<11)|(j>40&j<43))?46:i>13&i<37&((j>12&j<15)|(j>36&j<39))?43:((i>12&i<15)|(i>36&i<39))&j>12&j<39?43:i>17&i<33&((j>16&j<19)|(j>32&j<35))?46:((i>16&i<19)|(i>32&i<35))&j>16&j<35?46:i>21&i<29&((j>20&j<23)|(j>28&j<31))?43:((i>20&i<23)|(i>28&i<31))&j>20&j<31?43:i>24&i<27&j>24&j<27?46:32:32);}

এখানে আউটপুট;

..................................................
..................................................
..                                              ..
..                                              ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..                                              ..
..                                              ..
..................................................
..................................................

2
পবিত্র বিষ্ঠা। আমি আপনার উত্সর্গের প্রশংসা করি।
Rɪᴋᴇʀ

আমি সীমাবদ্ধতা পরিবর্তন করেছি, ফাংশনগুলি যা স্ট্রিং দেয় এখন তা অনুমোদিত।
পাভেল

আমি ঠিক বুঝতে পেরেছি যে লুপগুলি আবার লেখার জন্য আমি কিছু বাইট গল্ফ করতে পারি for(;i++<51;এবং এখন আমি সর্বত্র এক দ্বারা চলেছি: - /
ক্লাব্ল্যাঙ্ক

@ ক্লেব্ল্যাঞ্চ++i
ডকুড্রিভাটসেভ

এমএফডাব্লু আমি এটি বোঝার চেষ্টা শুরু করেছি: i.imgur.com/TLV9gJ4.png +1
ম্যাজিক অক্টোপাস উরান

6

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

q=(\n->[n,n]).abs=<<[-12..12]
unlines[[". + "!!mod(max x y)4|y<-q]|x<-q]

@ জাগারবের সমাধান হাস্কেলের মধ্যে। আমি কোরটির চারপাশে স্তরগুলি যুক্ত করে বাক্সটি তৈরির চেষ্টা করেছি ["..",".."], তবে এটি 9 বাইট দীর্ঘ (81 বাইট)।

e!b=e:e:b++[e,e];s#c=(c!)<$>(c<$s!!0)!s
unlines$foldl(#)["..",".."]" + . + . + ."

5

স্ট্যাকড, নন-কেপটিং, 35 বাইট

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

ε'.'3$' + .'2*tostr*+$surroundfold

Ungolfed:

'' '.  ++  ..  ++  ..  ++  ..' $surround fold

খুবই সাধারণ. surroundএকটি ফাংশন যা ভাল, একটি ফিল সত্তা সহ একটি সত্তা চারপাশে। উদাহরণস্বরূপ, (0) 1 surroundহয় ((1 1 1) (1 0 1) (1 1 1))$surroundহয় surroundএকটি ফাংশন হিসাবে, মূল্যায়ন নয়। foldএকটি প্রাথমিক মান নেয়, তারপরে ভাঁজ করার জন্য কিছু, তারপরে একটি ফাংশন। এই ক্ষেত্রে, surroundহয় folded প্রথমে খালি স্ট্রিং পার্শ্ববর্তী ''(equiv। ε) স্ট্রিং এর প্রতিটি অক্ষর দিয়ে।

'.'3$' + .'2*tostr*+

এটি প্রথমে একটি অক্ষরের স্ট্রিং তৈরি করছে $' + .', এটি যখন একটি সংখ্যার দ্বারা গুণিত হয় তখন প্রতিটি অক্ষর পুনরাবৃত্তি করে। এটি আমাদের সঙ্গে ছেড়ে: ++ ..। এরপরে এটি স্ট্রিংয়ে কাস্ট করা হয়। তারপরে, আমরা তিনবার এই স্ট্রিংটি পুনরাবৃত্তি করি এবং শেষ পর্যন্ত .আমাদের পছন্দসই স্ট্রিং সরবরাহ করে একটি প্রিপেন্ড করি ।


39 বাইটের জন্য একটি পৃথক পদ্ধতি:

' .'3$' + .'2*tostr*+toarr$surround#\out

#\সন্নিবেশ করা হয় এবং স্ট্রিংয়ের প্রাথমিক চরটি প্রারম্ভিক মান হিসাবে গ্রহণ করে। এটি কেবল অ্যারেগুলিতেও কাজ করে।


এই নন-কেপটিং কীভাবে চলছে, চ্যালেঞ্জটি কয়েক ঘন্টা আগে উঠেছিল।
পাভেল

@ পাভেল আমি সর্বদা এটিতে কাজ করে যাচ্ছি
কনর ও'ব্রায়ান

4

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

f=(n=12,c=`. + `[n%4],t=c.repeat(n*4+2))=>n?t+`
${t}
${f(n-1).replace(/^|$/gm,c+c)}
${t}
`+t:`..
..`
console.log(f())

অনার্সিউভ সমাধানটি আমাকে 128 বাইট নিয়েছে:

console.log([...Array(100)].map((_,i,a)=>a.map((_,j)=>`. + `[j=j>50?j-50:51-j,(i>j?i:j)%8>>1],i=i>50?i-50:51-i).join``).join`\n`)

যেখানে \nআক্ষরিক নিউলাইন চরিত্রের প্রতিনিধিত্ব করে।


4

সি, 97 বাইট

i,x,y;main(){for(;i<2550;putchar(++i%51?". + "[(x*x<y*y?y:x)&3]:10))x=i%51/2-12,y=i/102-12;}

3

জেলি , 18 বাইট

12ŒRAx2»þ`ị“ + .”Y

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

জাগারবের জে উত্তর হিসাবে একই পদ্ধতির: 12ŒRAহ'ল abs([-12 … 12]), x2প্রতিটি উপাদানকে দু'বার পুনরাবৃত্তি করে, »þ`সর্বাধিক একটি সারণী তৈরি করে, ị“ + .”চক্রাকারে সূচকে একটি স্ট্রিংয়ে সূচিত হয় এবং Yনিউলাইনগুলিতে যোগ দেয়।


3

05AB1E , 39 35 33 বাইট

•â3fM~•3B…012… .+‡.pvyD¤sg25s-׫«})«»

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

•â3fM~•3B                               # Push 1100220011002200110022001
         …012… .+‡                      # Push ..  ++  ..  ++  ..  ++  .
                  .p                    # All prefixes of the above string.
                    vy            }     # For each prefix.
                      D¤sg25s-×         # Repeat the last letter until length is 25.
                               «Â«      # Concat, bifurcate, concat.
                                   )«» # Wrap to array, bifurcate, concat, print.

৩৩ বাইট সংস্করণটি এখন শীতল কারণ এ্যামিগনা আমাকে 2 বাইট সংরক্ষণের মন্তব্য করেছিলেন:

". + "DøJ3×'.«.pvy¤25yg-׫«})«»

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


1
". + "DøJ3×'.«.pvy¤25yg-׫«})«»33 বাইট জন্য।
Emigna

… .+•â3fM~•3BSè.pvy¤25yg-׫«})«»"কুলার সংস্করণ" এ 34 বাইটের জন্য।
Emigna

শীতল হা হা শব্দটির সঠিক পছন্দ ছিল না। "কম ঘেটো", হয়তো?
যাদু অক্টোপাস উরান

আমি আপনার উপসর্গ কমান্ড ব্যবহার পছন্দ করি। উজ্জ্বল!
Emigna

1
@ ইমিগনা উপসর্গগুলি একটি ত্রিভুজ তৈরি করে, আপনি যদি ত্রিভুজটি স্থানান্তর করেন এবং এটিকে ঘোরান, তবে এটি মূল উপসর্গগুলির সাথে একত্রিত করুন আপনি বাইটগুলি শেভ করতে সক্ষম হতে পারেন। এটি ছিল মূল পরিকল্পনা যা আমি পেতে পারি না।
যাদু অক্টোপাস উরান





1

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

    b 0 = ["..", ".."]
b n = f:f:s:s:m (b (n - 1)) ++s:s:f:f:[]
    where f = replicate (8*n+2) $ d
          s = l++replicate ((8*n)-6) ' ' ++r
          m (x:xs) = map (\x -> l ++ x ++ r ) $ t
          l = d:d:' ':' ':[]
          r = reverse l
          t = b (n - 1)
          d :: Char
          d | n `mod` 2 == 0 = '.'
            | n `mod` 2 == 1 = '+'
main = mapM_ putStrLn $ b 6

কোড গল্ফের প্রথম রাউন্ড এখানে ... অন্যরা কীভাবে এটিকে সামাল দেয় তা দেখার প্রত্যাশায়।

আউটপুট:

..................................................
..................................................
..                                              ..
..                                              ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..                                              ..
..                                              ..
..................................................
..................................................

3
1) আপনার অনেক টাকার অপ্রয়োজনীয় সাদা স্থান রয়েছে। 2) সমস্ত ফাংশন সংজ্ঞাটি whereএকক লাইনের মধ্যে রেখে ;পৃথককরণের জন্য ব্যবহার করুন । 3) f:f:[]হয় f:[f] and d: '': '': [] d:" "। হয় । 4) mএকটি প্যারামিটার লাগে তবে এটি ব্যবহার করে না। ইনলাইন mএবং t। 5) #প্রতিস্থাপন করতে একটি নতুন ফাংশন সংজ্ঞায়িত করুন replicate: c#x=c<$[1..8*n+x]এবং এটি পছন্দ করুন d#2এবং ' '#(-6)। 6) mod 2 == 0সাথে প্রতিস্থাপন করা যায় even, বা পরীক্ষা এবং ব্যবহার oddএবং গল্ফারগুলি otherwise: ফ্লিপ করতে পারেন 1<2। ...
নিমি

2
... সব সব: b n=f:f:s:s:map(\x->l++x++r)(b$n-1)++s:s:f:[f]where f=d#2;s=l++' '#(-6)++r;l=d:d:" ";r=reverse l;d|odd n='+'|1<2='.';c#x=c<$[1..8*n+x]
নিমি

1

অক্টাভা, 53 বাইট

 '.  ++  .'(mod(bsxfun(@max,x=[24:-1:0 0:24],x'),8)+1)

বাহ্যিক কেন্দ্র থেকে 1 থেকে 8 এর পুনরাবৃত্তি প্যাটার্ন তৈরি করুন এবং এর উপাদানগুলির নিষ্কাশনের জন্য সূচক হিসাবে এটি ব্যবহার করুন . ++ .

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


1

বাশ, 191 বাইট

echo H4sIAGUcgFgAA73VOw7AIAyD4b2n6F6J+x+v6k5CnPy1F6ZPAvNaS80li4/cUvrkKWdGapOak3O5DDmVS5G8XI5k5ZIkLpclUbk02ZfLk125f5B4JIljLY59cZwxx31x3H3HO5aFIo7/pZIpqWZClHSJmg55AeBhTxb2CQAA|base64 -d|gunzip

সম্ভবত আরও ছোট হতে পারে তবে আমার অ্যালগরিদমিক প্রচেষ্টার চেয়ে ছোট ছিল।


1

সি #, 203 বাইট

সম্পূর্ণ, পঠনযোগ্য প্রোগ্রাম:

using System;
public class P
{
    public static void Main(string[] a)
    {
        Func<string> f = () =>
        {
            var z = 25;
            var t = "";
            Func<int, string> c = (q) => q % 4 == 0 ? ".." : (q % 4 != 2 ? "  " : "++");
            for (var y = 0; y < z; y++)
            {
                var l = "";
                for (var x = 0; x < z; x++)
                        l += ((y > z / 2) ? (x >= y | x < z - y) : (x < y | x >= z - y)) ? c(x):c(y);
                l += "\n";
                t += l + l;
            }
            return t;
        };

        Console.Write(f());
        Console.ReadKey();
    }
}

গল্ফড ফাংশন :

()=>{var z=25;var t="";Func<int,string>c=(q)=>q%4==0?"..":(q%4!=2?"  ":"++");for(var y=0;y<z;y++){var l="";for(var x=0;x<z;x++)l+=((y>z/2)?(x>=y|x<z-y):(x<y|x>=z-y))?c(x):c(y);l+="\n";t+=l+l;}return t;};

1

05 এ বি 1 ই , 33 বাইট

14G" . +"NL¤¸13N-.׫€D¨Â«èD})¨Â«»

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

ব্যাখ্যা

14G                               # for N in [1 ... 13]
   " . +"                         # push this string
         NL                       # push range [1 ... N]
           ¤¸13N-.×               # push a list of 13-N repetitions 
                                  # of the last element of the above range
                   «              # concatenate the two ranges
                    €D            # duplicate each element
                      ¨           # remove the last element
                       «         # concatenate a reversed copy to the list
                         è        # use the elements of the list to index into the string
                          D       # duplicate the resulting string
                           }      # end loop
                            )     # wrap the strings in a list
                             ¨    # remove the last element
                              «  # concatenate a reversed copy
                                » # join the list on newlines

আসার ব্যাখ্যা?
পাভেল

@ পাভেল: অবশ্যই! :)
Emigna

1

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

($x=(1..12|%{' . +'[$_%4]}|%{($a+=$_+$_)})+"$a."|%{$c=if(++$i%2){('+','.')[($b=!$b)]}else{' '};$_.PadRight(25,$c)}|%{,($_+-join$_[25..0])*2});$x[23..0]

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

হো-হুম উত্তর। আমি নিশ্চিত যে এখানে একটি আরও ছোট উপায় আছে (অন্যান্য উত্তরগুলির দৈর্ঘ্যের ভিত্তিতে আমি আত্মবিশ্বাসী) তবে এটি কিছু ঝরঝরে কৌশল দেখায়।

ব্যাখ্যা:

1..12|%{' . +'[$_%4]}আমাদের প্রয়োজন সঠিক প্যাটার্নে (একটি দৈর্ঘ্যের একটি অক্ষরের) একটি অ্যারে তৈরি করে। এটি অনলাইন চেষ্টা করুন!

তারপরে আমরা যুক্ত করব |%{($a+=$_+$_)})+"$a."যা অ্যারে নেয় এবং এটি পূর্ববর্তী সারির উপর ভিত্তি করে প্রসারিত করে। এটি অনলাইন চেষ্টা করুন!

এই স্ট্রিংগুলি তখন একটি লুপে প্রেরণ করা হয় |%{$c=if(++$i%2){('+','.')[($b=!$b)]}else{' '};$_.PadRight(25,$c)},। প্রতিটি পুনরাবৃত্তি, আমরা সঠিক অক্ষরটি বেছে নিচ্ছি (হয় একটি প্লাস, একটি বিন্দু, বা একটি স্থান), এবং তারপরে .PadRightযথাযথ সংখ্যার জন্য প্যাড ফাংশনটি ব্যবহার করছি । এটি অনলাইন চেষ্টা করুন!

এখন, আমাদের উপরের ডানদিকে কোণার ভিত্তি রয়েছে। আমাদের প্রতিটি স্ট্রিংকে বিপরীত করা |%{,($_+-join$_[($z=25..0)])*2}এবং তাদের একসাথে সংযুক্ত করা দরকার যাতে আমরা ব্লকের শীর্ষটি পেতে পারি। এটি -joinকমান্ড এবং ইনডেক্স ব্যাকগ্রাউন্ড দিয়ে করা হয় 25..0। উপরন্তু, আমরা একটি অ্যারে স্ট্রিংগুলি encapsulate ,(...)এবং তাদের ডাবল করা *2যাতে আমরা পুরো শীর্ষ পেতে।এটি অনলাইন চেষ্টা করুন!

এটি সমস্ত $xপ্যারেন্সে সঞ্চিত এবং আবদ্ধ হয় তাই এটি পাইপলাইনে স্ট্রিংগুলি রাখে। অবশেষে, আমরা বিপরীত $x(ডুপ্লিকেট-সদৃশ মাঝারি সারিটি স্নিপ করার বিষয়টি নিশ্চিত করে, অন্যথায় আমাদের ..মাঝখানে চারটি থাকবে ) এবং পাইপলাইনে থাকাগুলিকে রেখে দেই । একটি অন্তর্নিহিত Write-Outputস্ট্রিংগুলির মধ্যে একটি নতুন লাইন থাকে, সুতরাং আমরা এটি নিখরচায় পাই।

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