ASCII षट्कोण श्रृंखला


13

मुसीबत

एक षट्भुज श्रृंखला xलंबी खींचिए , प्रत्येक yलंबाई के साथ

इनपुट

x - श्रृंखला की लंबाई <= 50

y - प्रत्येक पक्ष की लंबाई <= 50

उदाहरण

x=1,y=1

 _
/ \
\_/

x=4,y=1

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

x=3,y=2

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

नियम

  • बाइट्स जीत में सबसे कम वैध जवाब।

  • अग्रणी और अनुगामी अनुगामी अनुमति दी।

  • सफेद जगह की अनुमति दी।



2
अनिवार्य हेक्सागोनी उत्तर की प्रतीक्षा ...
LLlAMnYP


@ user202729 यदि आप अभी एक लिखते हैं, तो हमें कभी यह पता लगाने की ज़रूरत नहीं है कि क्या होता है।
लाईफ़डेवेन

हेक्सागोनी में पहली पंक्ति । जाहिर है बाकी के लिए किनारे का आकार बढ़ाने की जरूरत है।
user202729

जवाबों:


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)

इसे ऑनलाइन आज़माएं!


@ नोव्स बहुत बहुत धन्यवाद :)
TFeld


3

SOGL V0.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

जावास्क्रिप्ट (ईएस 6), 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.