একটি ষড়ভুজ প্রসারিত করুন


24

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

                     _____
  ____              /     \
 /    \            /       \
/      \          /         \
\       \   =>    \          \
 \      /          \         /
  \____/            \       /
                     \_____/

ইনপুট হেক্সাগনগুলির 180 ডিগ্রির প্রতিসাম্য থাকবে তবে অন্যথায় দিকগুলি সমস্ত ভিন্ন দৈর্ঘ্য হতে পারে। উপরে, পাশের দৈর্ঘ্য (2, 4, 3) এ বড় করা হবে (3, 5, 4)। পাশের দৈর্ঘ্যটি ননজারো হবে।

হেক্সাগনগুলি আন্ডারস্কোর _, স্ল্যাশ /এবং ব্যাকস্ল্যাশ দিয়ে তৈরি \। অনুভূমিক প্রান্তগুলির (আন্ডারস্কোর দিয়ে তৈরি) নোট করুন, শীর্ষ প্রান্তটি নিজস্ব লাইনে রয়েছে তবে নীচের প্রান্তটি নয়।

ইনপুট / আউটপুট

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

বিস্তারিত

আপনি চাইলে ইনপুটটিতে একটি optionচ্ছিক ট্রেলিং নিউলাইন অন্তর্ভুক্ত থাকতে পারে তবে অন্যথায় কোনও খালি লাইন থাকবে না। আপনি ইনপুটটিতে কোনও পেছনের জায়গা না রেখে বা প্রতিটি লাইনকে একই দৈর্ঘ্যের (দীর্ঘতম লাইনের) প্যাড করার জন্য ফাঁকা স্থান চয়ন করতে পারেন।

ইনপুটটির মতো আউটপুটটি স্ক্রিনের বাম প্রান্তের সাথে ফ্লাশ করা উচিত। আপনার উপরের এবং নীচের পাশাপাশি অতিরিক্ত স্থানের স্থানের অতিরিক্ত নিউলাইন থাকতে পারে।

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

আউটপুট পরে ইনপুট।

 _
/ \
\_/

  __
 /  \
/    \
\    /
 \__/

  ____
 /    \
/      \
\       \
 \      /
  \____/

   _____
  /     \
 /       \
/         \
\          \
 \         /
  \       /
   \_____/

     _
    / \
   /  /
  /  /
 /  /
/  /
\_/

      __  
     /  \
    /    \
   /     /
  /     /
 /     /
/     /
\    /
 \__/

লিডারবোর্ড

<iframe src="https://xmikee1.github.io/ppcg-leaderboard/?id=185760" width="100%" height="100%" style="border: none;">Oops, your browser is too old to view this content! Please upgrade to a newer version of your browser that supports HTML5.</iframe><style>html,body{margin:0;padding:0;height:100%;overflow:hidden}</style>


আউটপুট হেক্সাগনটি কি একই তবে বড় হতে হবে, বা এটি উপযুক্ত পাশের দৈর্ঘ্য সহ কোনও ষড়ভুজ হতে পারে?
স্টিফেন

1
@ স্টেফেন একই অরিয়েন্টেশনে এটি একই তবে বড় হতে হবে।
xnor

2
এটি সত্যই লিখিত একটি চ্যালেঞ্জের দুর্দান্ত উদাহরণ। সংক্ষিপ্ত, পরিষ্কার এবং বিন্দু। আমি কি একটি ছোট পরামর্শ দিতে পারি? "স্টিকারার" সমস্ত অ নেটিভ ইংলিশ স্পিকারের জন্য পরিষ্কার নাও হতে পারে। আমি কি সুপারিশ করতে পারি যে "আমি কেবল গ্রহণ করব ..." বা এর মতো কিছু বোঝা সহজ হতে পারে? যাইহোক +1।
এলপেড্রো

আমরা কি একটি অ্যারে / IEnumerableঅক্ষরের ফিরিয়ে দিতে পারি ?
অজ্ঞতার প্রতিমূর্তি

অ্যাম্বোডিমেন্টফ অজানা হ্যাঁ, যতক্ষণ না নতুন লাইন অক্ষর রয়েছে ততক্ষণ এগুলি ভাল।
xnor

উত্তর:



5

রেটিনা 0.8.2 , 84 বাইট

m`(¶.*)( .)$
$1   $2
(_+¶)(( */)  ( *.))
 _$1 $3$4¶$2
( *.)(_+/)$
$1$.2$*   /¶ $1_$2

এটি অনলাইন চেষ্টা করুন! অনিয়মিত হেক্সাগন দিয়ে কাজ করে। আই / ও আনপ্যাডেড is ব্যাখ্যা:

m`(¶.*)( .)$
$1   $2

ষড়ভুজ এর অভ্যন্তর প্রশস্ত করুন।

(_+¶)(( */)  ( *.))
 _$1 $3$4¶$2

উপরে ঠিক করুন।

( *.)(_+/)$
$1$.2$*   /¶ $1_$2

নীচে ঠিক করুন।


5

জাভাস্ক্রিপ্ট (ES6),  159 156 153  150 বাইট

s=>s[r='replace'](/\S /g,'$&   ')[r](/.*/,s=>s[r](e=/_+/,` $&_
`+s[r](e,'/$& \\')[r](e=/_/g,' ')))[r](/ *\\_+/,s=>s[r](e,' ')+`   /
 `+s[r](/_/,'__'))

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

মন্তব্য

এনবি: এসই সিনট্যাক্স হাইলাইটারকে দমন করা থেকে বিরত রাখতে নীচে রেজেক্স ডিলিমেটারগুলির জন্য বিকল্প অক্ষরগুলি নীচে ব্যবহার করা হয়।

s =>                       // s = input
  s[r = 'replace'](        // r = alias for 'replace'
                           // STEP #1
    \S g,                // insert two middle spaces for all lines
    '$&   '                // that contain a border, followed by a space
  )                        // (i.e. all lines except the first and the last one)
  [r](                     // STEP #2
    ∕.*∕,                  // isolate the first line
    s =>                   // let s be this first line
      s[r](                //
        e = _+∕,          // find the sequence of underscores and replace it with:
        ` $&_\n` +         //   the same sequence preceded by a space and followed by '_'
        s[r](              //   followed by a linefeed and:
          e,               //     the same sequence preceded by '/' and followed by ' \'
          '/$& \\'         //     
        )                  //     with:
        [r](e = _g, ' ') //     all underscores replaced with spaces
  ))                       //
  [r](                     // STEP #3
     *\\_+∕,              // isolate the last line, without the trailing '/'
    s =>                   // let s be this last line
      s[r](e, ' ') +       // replace all underscores with spaces
      `   /\n ` +          // append 3 spaces and a trailing '/', followed by a linefeed
      s[r](∕_∕, '__')      // append s with an extra underscore
  )                        //

2

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

SθW¬№ω_≔⁺ωSω≔⊕⊘№ω\η≔⊕⊘№ω/ζ≔×_⊕№ω_θ↗ζθ↓↘η←↙ζ↑←θ↖η

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

SθW¬№ω_≔⁺ωSω

প্রথমটি বাদে সমস্ত লাইনকে ইনপুট করুন এবং সংযুক্ত করুন। (জেএসওএন ফর্ম্যাটে ইনপুট 11 বাইট সংরক্ষণে এই বেশিরভাগ অপ্রয়োজনীয় করে তুলবে))

≔⊕⊘№ω\η≔⊕⊘№ω/ζ≔×_⊕№ω_θ

স্ট্রিংয়ে /s, /s এবং _s এর সংখ্যা গণনা করুন এবং নতুন পাশের দৈর্ঘ্য গণনার জন্য এটি ব্যবহার করুন ( _s এর ক্ষেত্রে _, সেই দৈর্ঘ্যের s এর স্ট্রিং হিসাবে )।

↗ζθ↓↘η←↙ζ↑←θ↖η

বর্ধিত ষড়্ভুজ আঁকুন।

বিকল্প সমাধান, এছাড়াও 48 বাইট:

SθW¬№ω_≔⁺ωSω≔⁺θωθF²«≔E\/_⊕⊘№θκη×_⊟ηM⁰¬ιFη«↷¹κ↷¹¶

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

SθW¬№ω_≔⁺ωSω≔⁺θωθ

সমস্ত লাইন ইনপুট। (JSON ফর্ম্যাটে ইনপুট 17 বাইট সংরক্ষণে এটি অপ্রয়োজনীয় করে তুলবে))

F²«

ষড়ভুজের উপরের ডান এবং নীচে বাম বিভাগগুলি আলাদাভাবে আঁকুন।

≔E\/_⊕⊘№θκ

স্ট্রিংয়ে /s, /s এবং _s এর সংখ্যা গণনা করুন এবং নতুন পাশের দৈর্ঘ্য গণনা করতে এটি ব্যবহার করুন।

η×_⊟ηM⁰¬ι

উপরের বা নীচে আউটপুট করুন এবং যদি এটি শীর্ষ লাইন হয় তবে একটি রেখাটি নীচে সরান।

Fη«↷¹κ↷¹¶

ডান বা বাম উভয় দিক আঁকুন।


2

এপিএল (ডায়ালগ ইউনিকোড) , 75 74 বাইট এসবিসিএস

' /\_'∘{⍺[a×1=(+⍀×a)⌊⊖+⍀⊖×a2⌈/{⊃0~⍨1⌷⍵,⍨⍉⍵}⌺3 3(0,0,⍨⍉)⍣3⍉⍺⍳↑⍵]}'.+'s'&'

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

'.+'⎕s'&' লাইনে ইনপুট বিভক্ত করুন

↑⍵ একটি ম্যাট্রিক্স মধ্যে লাইন মিশ্রিত

⍺⍳ প্রতিস্থাপন করা ' /\_'সঙ্গে 0 1 2 3

(0,0,⍨⍉)⍣3⍉ উপরে ও নীচে 0 টি স্তর এবং বাম এবং ডানে 0 টি এর দুটি স্তর দিয়ে চারদিকে ঘিরে নিন

{⊃0~⍨1⌷⍵,⍨⍉⍵}⌺3 3 প্রতিটি কক্ষের জন্য প্রথম অ-0 বেছে নিন: উপরের, নিম্ন, বাম, ডানদিকে কেন্দ্রিক 3x3 পাড়া থেকে

2⌈/ অনুভূমিকভাবে জোড়া সর্বোচ্চ

a×1=(+⍀×a)⌊⊖+⍀⊖×a← কেবলমাত্র অ -0 এর বাইরের সীমানা রাখুন

⍺[ ]0 1 2 3সঙ্গে প্রতিস্থাপন' /\_'



0

পার্ল 5 , 177 156 145 বাইট

@l=pop=~/.+/g;splice@l,$_,0,$l[$_]=~s,_, ,gr for-1,1;$l[$_]=~s, (\S)( +)(\S),$_<2?" $1$2 $3":"$1$2   $3",e for 1..@l-2;join("\n",@l)=~s,_+,$&_,gr

খাটো হতে পারে? কিভাবে ঠিক এখনও দেখুন না। মন্তব্য এবং যুক্ত নিউলাইন এবং হেডার + পাদচরণ যুক্ত:

sub f {
@l=pop=~/.+/g;                                                      #1
splice@l,$_,0,$l[$_]=~s,_, ,gr for-1,1;                             #2
$l[$_]=~s, (\S)( +)(\S),$_<2?" $1$2 $3":"$1$2   $3",e for 1..@l-2;  #3
join("\n",@l)=~s,_+,$&_,gr                                          #4
}

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

লাইন # 1 মাল্টি-লাইন ইনপুট স্ট্রিংটিকে @ এল অ্যারে বিভক্ত করে।

লাইন # 2 টি অক্ষর ছাড়াই দ্বিতীয় এবং শেষ রেখার সদৃশ।

লাইন # 3 সর্বশেষ লাইনের 2 থেকে দ্বিতীয় স্থানে যেখানে স্পেস যুক্ত করে।

লাইন # 4 দুইটি ___ পাশকে একটি _ দিয়ে প্রশস্ত করে এবং @l রেখার এল অ্যারেটিকে একাধিক-লাইনের স্ট্রিং হিসাবে ফিরিয়ে দেয়।

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