হেক্সাগল্ফ: রোটাগানস


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 হয় তবে আমরা 120 ডিগ্রি পেতে 60 দ্বারা গুণ করি। তারপরে, আমরা হেক্সাগনটি 120 ডিগ্রি ঘোরান:

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

নোট করুন যে প্রতিটি পাশই দুটি দিককে ঘড়ির কাঁটার দিকে এগিয়েছে।

যদি nইতিবাচক হয় তবে আপনার ষড়ভুজটি ঘড়ির কাঁটার দিকে ঘোরানো উচিত। যদি nnegativeণাত্মক হয় তবে আপনার ষড়ভুজকে অ্যান্টিকলক দিকের দিকে ঘোরানো উচিত।

n সর্বদা সর্বনিম্ন -6 থেকে 6 অন্তর্ভুক্তের মধ্যে পূর্ণসংখ্যা হবে।

উদাহরণ

ইনপুট:

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

n = 3

  . 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
@ কনরও ব্রায়েন আপনি কি দেখেন নি যে তাদের পয়েন্টগুলি কতটা বিপজ্জনক? ;)
বিটা ক্ষয়

আমরা কি লাইনগুলির তালিকা হিসাবে ইনপুট নিতে পারি? আমরা কি অনুমান করতে পারি যে ইনপুটটি স্থান-প্যাডযুক্ত?
লিন


1
সিএসএসের সাথে স্মার্টাস হওয়ার চেষ্টা করে আমি কয়েক মিনিট হারিয়েছি 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()

পরামর্শের জন্য শার্লক 9 কে ধন্যবাদ !


2
7 টি স্ট্যান্ডার্ড অজগরকে পরাজিত না করা পর্যন্ত!
R

@ ইস্টারলিআইআরকি যদি কেবলমাত্র t.write('\n')কাজ করা হয় ...
mbomb007

@ ইস্টারলিআইর্ক যদি আমি অপসারণ করতে পারি তবে আমি t.up()সেখানে থাকতাম।
mbomb007

অভিনন্দন! আপনি সাধারণ অজগরকে মারছেন!
আর

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

জাভাস্ক্রিপ্ট (ES6), 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

মূলত আমার ডায়মন্ড টাইলিংয়ের উত্তরের উপর ভিত্তি করে যদিও আমি এখন এই উত্তরটির লাইন বরাবর সেই উত্তরটি পুনরায় লিখতে সক্ষম হতে পারি।

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