Lihat juga: Wordagons
Tantangan
Diberikan segi enam dan angka n
sebagai input, output hexagon yang sama diputar n
kali.
Segi enam
Segi enam akan menjadi string seperti ini:
a b c
d d e e
f f o g g
h h i i
j k l
Segi enam akan selalu teratur dan hanya akan berisi karakter ASCII yang dapat dicetak:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Rotasi
Untuk menemukan berapa banyak memutar hexagon, kalikan n
dengan 60 derajat untuk mendapatkan sudut rotasi. Misalnya, menggunakan segi enam di atas, jika n
2, kita kalikan dengan 60 untuk mendapatkan 120 derajat. Kemudian, kami memutar segi enam sebanyak 120 derajat:
j h f
k h f d
l i o d a
i g e b
g e c
Perhatikan bahwa setiap sisi telah bergerak dua sisi searah jarum jam.
Jika n
positif, Anda harus memutar hexagon searah jarum jam. Jika n
negatif, Anda harus memutar hexagon berlawanan arah jarum jam.
n
akan selalu menjadi bilangan bulat dalam rentang -6 hingga 6 inklusif.
Contohnya
Memasukkan:
. u .
. | .
l - + - r
. | .
. d .
n
= 3
. d .
. | .
r - + - l
. | .
. u .
Memasukkan:
- - -
/ \
< >
\ /
- - -
n
= -1
Keluaran:
- \ >
- /
- -
/ -
< \ -
Memasukkan:
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
Keluaran:
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
Kemenangan
Program terpendek dalam byte menang.
sumber
transform:rotate(x)
. Ternyata itu bukan ide yang cemerlang, siapa yang akan tahu?Jawaban:
Perl,
120119113107104102 byteTermasuk +6 untuk
-0pXi
Jalankan dengan hexagon pada STDIN (diisi dengan spasi sehingga semua garis memiliki panjang yang sama) dan jumlah rotasi setelah -i.
rotagon.pl
Akhirnya mendapat matriks rotasi lebih pendek dari loop ganda yang lama
sumber
a
dann
untuk membuatnya berfungsi.-F
menyiratkan-a
dan-a
pada gilirannya menyiratkan-n
Python 2,
160158156148124 byteBersiaplah untuk kagum! Teks yang dihasilkan digambar di atas kanvas ... oleh
Turtle
! : DCobalah online - Mendukung rotasi desimal juga!
Jika Anda ingin kura-kura berbentuk seperti itu, Anda bisa menambahkan garisnya
t.shape("turtle")
.Lihat riwayat revisi untuk melihat versi sebelumnya.
Alias digunakan :
up()
-penup()
rt()
-right()
lt()
-left()
fd()
-forward()
bk()
-backward()
Terima kasih kepada Sherlock9 untuk sarannya !
sumber
t.write('\n')
bekerja ...t.up()
, saya akan berada di sana.Python 2.7, 151 byte
Contoh:
sumber
JavaScript (ES6),
130127 byteAwalnya berdasarkan jawaban saya untuk Memutar ubin berlian meskipun sekarang saya mungkin bisa menulis ulang jawaban itu di sepanjang baris jawaban ini.
sumber