এএসসিআইআই হেক্সাগন চেইন


13

সমস্যা

দৈর্ঘ্যের xপাশাপাশি প্রতিটি লম্বালম্বি ষড়ভুজ শৃঙ্খলা আঁকুনy

ইনপুট

x - চেইনের দৈর্ঘ্য <= 50

y - প্রতিটি পাশের দৈর্ঘ্য <= 50

উদাহরণ

x=1,y=1

 _
/ \
\_/

x=4,y=1

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

x=3,y=2

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

বিধি

  • বাইট জেতে সংক্ষিপ্ততম বৈধ উত্তর।

  • শীর্ষস্থানীয় এবং চলমান নিউলাইনগুলি অনুমোদিত।

  • ট্রেলিং সাদা স্থান অনুমোদিত।



2
বাধ্যতামূলক হেক্সাগনির উত্তরের জন্য অপেক্ষা করা হচ্ছে ...
LLlAMnYP


@ user202729 আপনি যদি এখনই একটি লিখেন তবে আমাদের কী হবে তা খুঁজে বের করতে হবে না।
LiefdeWen

হেক্সাগনিতে প্রথম লাইন । স্পষ্টতই বাকীগুলির জন্য প্রান্তের আকার বাড়ানো দরকার।
ব্যবহারকারী 202729

উত্তর:


8

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

NθFN«M∧﹪ι²⊗θ↓P×_θ←↖θ→↗θ×_θ↓↘θ←P↙θ↗

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

Nθ

ষড়ভুজ আকারে ইনপুট করুন।

FN«

হেক্সাগনগুলির ইনপুট সংখ্যার উপর লুপ করুন।

M∧﹪ι²⊗θ↓

বিকল্প হেক্সাগনগুলিতে, একটি পুরো ষড়জাগরণকে নীচে সরান, যাতে পরবর্তী ষড়জাগরণ উপরের ডানদিকে চেয়ে ডানদিকে টানা থাকে।

P×_θ

নীচে আঁকুন।

←↖θ

নীচের বাম দিকে আঁকুন।

→↗θ

উপরের বাম দিকে আঁকুন।

×_θ

শীর্ষ আঁকুন।

↓↘θ

উপরের ডানদিকে আঁকুন।

←P↙θ

নীচের ডানদিকে আঁকুন।

ধরুন, পরের ষড়্ভুজটি উপরের ডানদিকে রয়েছে।


4

পাইথন 2 , 254 224 বাইট

def f(n,w):
 a=w*2
 for j in range(1+w*3):print''.join([[[' ',[' /'[i%w==-j%w],' \\'[i%w==~-j%w]][i/a+~-j/w&1]][(j>0)*(i/w>=(j>a))*((i/w/n<2)or(n%-2<~-j/w<3-n%2))],' _'[(j+i/w%4/2*w)%a<(i<n*a)]][i/w%2]for i in range(-~n*a)])

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


পাইথন 2 , 264 229 বাইট

def f(n,w):
 c=2*w;r=[[' ']*(-~n*c)for _ in' '*(1+w*3)]
 for i in range(w):
  for j in range(n):a=i+j*2*w;b=j%2*w;r[b][w+a],r[c+b][w+i+j*c],r[b+w-i][a],r[b+c-i][a+c],r[b+w-~i][a],r[b-~i][a+c]=r'__//\\'
 for l in r:print''.join(l)

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


@ ওভসকে অনেক ধন্যবাদ :)
টিফিল্ড


3

এসওজিএল ভি0.12 , 32 31 বাইট

ā.{e╚øΚe╔*ο⁴↔±┼┼╬±fe«*If2%e*I╬5

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

ব্যাখ্যা:

ā                              push an empty array - the canvas
 .{                            repeat input times
   e╚                            push a diagonal the length of the variable E (by default: next input)
     øΚ                          prepend a line to it
       e╔*ο                      push ["_"*E]
           ⁴                     copy that diagonal
            ↔±                   and reverse it horizontally
              ┼┼                 add the 3 parts together
                ╬±               and palindromize vertically - one hexagon is finished
                  fe«*I          push counter*E*2 + 1 (the counter is 0-based)
                       f2%e*I    push counter%2 * E + 1
                             ╬5  at [counter*E*2+1; counter%2*E+1] insert the hexagon in the canvas


1

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

বাক্য গঠন সিনট্যাক্সে ইনপুট নেয় (y)(x)

y=>(F=(x,c=!(p=y-1,w=x*y*2+y,a=[...(' '.repeat(w++)+`
`).repeat(3*y+1)],g=(d,k)=>k!=y?g(d,-~k,a[p+=d]='_\\/'[c%3]):c++))=>x--?F(x,g(1),g(w+1),p++,g(w-1),g(-1),p+=w,g(~w),p--,g(1-w),p+=(c/6&1?w:-w)*y-w+y*2):a.join``)

ডেমো


0

ক্যানভাস , 25 বাইট

ø╶{╷⁷«×¹2%⁷×╵⁷⇵_× ⁷/∔×╬│╋

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

ব্যাখ্যা (কিছু অক্ষর মনোস্পেস দেখতে পরিবর্তন করা হয়েছে):

ø╶{╷⁷«×¹2%⁷×╵⁷⇵_× ⁷/∔×╬│╋
ø                          push an empty canvas
 ╶{                        for 1..input
   ╷                         decrease (so this starts with 0)
    ⁷«×                      multiply by X*2; X coordinate of new hexagon done
       ¹2%                   push 0-indexed counter%2
          ⁷×                 multiply by X
            ╵                and increment; Y coordinate done
             ⁷⇵              push ceil(X/2), saving the remainder
               _×            repeat "_" that many times
                  ⁷/         push " " and an ASCII diagonal with size X
                    ∔        prepend verticall the space before the diagonal
                              done so there's space for the underscores
                     ×       and append the underscores horizontally to the diagonal
                      ╬│     quad-palindromize with Y overlap of 1
                              and X overlap of the remainder taken before
                        ╋    and at the before defined coords ((I-1)*X*2; (i%2)*X + 1)
                              insert the hexagon in the canvas
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.