हेक्सागोल्फ: रोटेटागोन


15

इसे भी देखें: वर्डैगन

चुनौती

एक षट्भुज और nइनपुट के रूप में एक संख्या को देखते हुए, एक ही षट्भुज घुमाए गए nसमय का उत्पादन करता है।

षट्कोण

षट्भुज एक स्ट्रिंग की तरह होगा:

  a b c
 d d e e
f f o g g
 h h i i
  j k l

षट्भुज हमेशा नियमित रहेगा और इसमें केवल मुद्रण योग्य ASCII वर्ण होंगे:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

रोटेशन

यह जानने के लिए कि हेक्सागोन को कितना घुमाना है, nरोटेशन के कोण को प्राप्त करने के लिए 60 डिग्री से गुणा करें । उदाहरण के लिए, उपरोक्त षट्भुज का उपयोग करते हुए, यदि n2 है, तो हम 60 से 120 डिग्री प्राप्त करने के लिए गुणा करते हैं। फिर, हम षट्भुज को 120 डिग्री से घुमाते हैं:

  j h f
 k h f d
l i o d a
 i g e b
  g e c

ध्यान दें कि प्रत्येक पक्ष ने दो पक्षों को दक्षिणावर्त स्थानांतरित किया है ।

यदि nसकारात्मक है, तो आपको षट्भुज को दक्षिणावर्त घुमाना चाहिए। यदि nनकारात्मक है, तो आपको हेक्सागोन एंटीक्लॉकवाइज को घुमाना चाहिए।

n हमेशा -6 से 6 समावेशी रेंज में एक पूर्णांक होगा।

उदाहरण

इनपुट:

  . u .
 .  |  .
l - + - r
 .  |  .
  . d .

n = ३

  . d .
 .  |  .
r - + - l
 .  |  .
  . u .

इनपुट:

  - - -
 /     \
<       >
 \     /
  - - -

n = -1

आउटपुट:

  - \ >
 -     /
-       -
 /     -
  < \ -

इनपुट:

   h e x a
  g o n s a
 n d t r i a
n g l e s m a
 k e m e s a
  d l y m a
   d d e r

n = 6

आउटपुट:

   h e x a
  g o n s a
 n d t r i a
n g l e s m a
 k e m e s a
  d l y m a
   d d e r

जीतना

बाइट्स में सबसे छोटा कार्यक्रम जीतता है।


2
आपके पास त्रिकोण के खिलाफ क्या है? : पी
कॉनर ओ'ब्रायन

4
@ ConorO'Brien आपने नहीं देखा कि उनके अंक कितने खतरनाक हैं? ;)
बीटा डिके

क्या हम इनपुट को लाइनों की सूची के रूप में ले सकते हैं? क्या हम मान सकते हैं कि इनपुट स्पेस-पेड है?
लिन

1
बहुत निकटता से संबंधित: codegolf.stackexchange.com/q/51964/15599
स्तर नदी सेंट

1
मैंने CSS के साथ स्मार्टस होने की कोशिश में कुछ मिनट खो दिए transform:rotate(x)। ' पता चला है कि एक उज्ज्वल विचार नहीं था, कौन जानता होगा?
एरॉन

जवाबों:


1

पर्ल, 120 119 113 107 104 102 बाइट्स

के लिए +6 शामिल है -0pXi

STDIN पर षट्भुज के साथ भागो (रिक्त स्थान के साथ गद्देदार ताकि सभी लाइनों की लंबाई समान हो) और -i के बाद घुमावों की संख्या।

perl -0pXi1 rotagon.pl 
  a b c
 d d e e
f f o g g
 h h i i
  j k l
^D

rotagon.pl

s!(.)!$X=(3*($w=y/
//*2)/4+($-="@-"/$w)-"@+"%$w)/2*--$w+2*$--.25;/^\C{$X}(.)/;$1!eg while$^I--%6

अंत में रोटेशन मैट्रिक्स को पुराने डबल लूप की तुलना में कम हो गया


मुझे इसे काम करने के लिए aऔर nझंडे जोड़ने थे ।
नील

1
@ नील केवल पुराने पर्ल संस्करणों पर आवश्यक है। हाल के पर्ल्स में निहित -Fहै -aऔर -aबदले में तात्पर्य है-n
टन हास्पेल

14

पायथन 2, 160 158 156 148 124 बाइट्स

चकित होने के लिए तैयार! परिणामी पाठ एक कैनवास पर खींचा गया है ... ए द्वाराTurtle! : डी

from turtle import*
h,n=input()
up()
rt(n*60)
l=0
for c in h:
 write(c);fd(9);l-=1
 if" ">c:fd(9*l);rt(90);fd(15);lt(90);l=0

इसे ऑनलाइन आज़माएँ - साथ ही दशमलव घुमाव का समर्थन करता है!


यदि आप कछुए को एक जैसा आकार देना पसंद करेंगे, तो आप लाइन जोड़ सकते हैं t.shape("turtle")

पिछले संस्करणों को देखने के लिए संशोधन इतिहास देखें।

उपनाम का इस्तेमाल किया :

up() - penup()

rt() - right()

lt() - left()

fd() - forward()

bk() - backward()

के लिए धन्यवाद Sherlock9 के लिए सुझाव !


2
7 और जब तक आप मानक अजगर को हरा नहीं देते!
R

@EasterlyIrk यदि केवल t.write('\n')काम किया ...
mbomb007

@EasterlyIrk यदि मैं हटा सकता था t.up(), तो मैं वहाँ रहूँगा ।
mbomb007

बधाई! आप सामान्य अजगर को पीट रहे हैं!
R

6

पायथन 2.7, 151 बाइट्स

h,n=input()
s=1-len(h)
e=enumerate
exec n%6*"h=[''.join(c>' 'and h[y-x-3*s/2>>1][x*2+y*6+s>>2]or c for x,c in e(l))for y,l in e(h)];"
print'\n'.join(h)

उदाहरण:

% python2.7 hexarot.py <<<'[["   h e x a   ","  g o n s a  "," n d t r i a ","n g l e s m a", " k e m e s a ","  d l y m a  ","   d d e r   "],-1]'
   a a a a   
  x s i m a  
 e n r s s a 
h o t e e m r
 g d l m y e 
  n g e l d  
   n k d d

@ mbomb007 कि संचालन के आदेश के कारण काम नहीं करेगा, घटाव बिटशिफ्ट से पहले होगा।
FryAmTheEggman

1

जावास्क्रिप्ट (ईएस 6), 130 127 बाइट्स

f=(s,n)=>n%6?f(s.split`
`.map((s,i,a)=>s.replace(/./g,(c,j)=>(a[(i+z-j)/2+z]||c)[(i+j-z)/2+i]||c,z=a.length>>1)).join`
`,n-1):s

मूल रूप से एक हीरे की टाइलिंग को घुमाए जाने के मेरे उत्तर पर आधारित है, हालांकि मैं अब इस उत्तर की पंक्तियों के साथ उस उत्तर को फिर से लिखने में सक्षम हो सकता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.