Zobacz także: Wordagons
Wyzwanie
Biorąc pod uwagę sześciokąt i liczbę n
jako dane wejściowe, wysyłaj te same n
czasy obrotu sześciokąta .
Sześciokąt
Sześciokąt będzie ciągiem takim:
a b c
d d e e
f f o g g
h h i i
j k l
Sześciokąt będzie zawsze regularny i zawsze będzie zawierał tylko drukowalne znaki ASCII:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Obrót
Aby dowiedzieć się, o ile obrócić sześciokąt, pomnóż n
przez 60 stopni, aby uzyskać kąt obrotu. Na przykład, używając powyższego sześciokąta, jeśli n
wynosi 2, mnożymy to przez 60, aby uzyskać 120 stopni. Następnie obracamy sześciokąt o 120 stopni:
j h f
k h f d
l i o d a
i g e b
g e c
Pamiętaj, że każda strona przesunęła się o dwie strony zgodnie z ruchem wskazówek zegara.
Jeśli n
jest dodatnia, należy obrócić sześciokąt zgodnie z ruchem wskazówek zegara. Jeśli wartość n
jest ujemna, należy obrócić sześciokąt w kierunku przeciwnym do ruchu wskazówek zegara.
n
zawsze będzie liczbą całkowitą z zakresu od -6 do 6 włącznie.
Przykłady
Wejście:
. u .
. | .
l - + - r
. | .
. d .
n
= 3
. d .
. | .
r - + - l
. | .
. u .
Wejście:
- - -
/ \
< >
\ /
- - -
n
= -1
Wynik:
- \ >
- /
- -
/ -
< \ -
Wejście:
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
Wynik:
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
Zwycięski
Najkrótszy program w bajtach wygrywa.
źródło
transform:rotate(x)
. Okazuje się, że to nie był dobry pomysł, kto by wiedział?Odpowiedzi:
Perl,
120119113107104102 102 bajtówObejmuje +6 za
-0pXi
Uruchom z sześciokątem na STDIN (wypełniony spacjami, aby wszystkie linie miały tę samą długość) i liczbą obrotów po -i.
rotagon.pl
W końcu matryca obrotu jest krótsza niż stara podwójna pętla
źródło
a
i,n
aby to zadziałało.-F
implikuje się,-a
a-a
z kolei implikuje-n
Python 2,
160158156148124 bajtówPrzygotuj się na zaskoczenie! Wynikowy tekst jest rysowany na płótnie ... przez
Turtle
! :REWypróbuj online - obsługuje także rotację dziesiętną!
Jeśli wolisz, aby żółw miał taki kształt, możesz dodać linię
t.shape("turtle")
.Zobacz historię zmian, aby zobaczyć poprzednie wersje.
Użyte pseudonimy :
up()
-penup()
rt()
-right()
lt()
-left()
fd()
-forward()
bk()
-backward()
Dzięki Sherlock9 za sugestie !
źródło
t.write('\n')
działał ...t.up()
, byłbym tam.Python 2.7, 151 bajtów
Przykład:
źródło
JavaScript (ES6),
130127 bajtówPierwotnie na podstawie mojej odpowiedzi na obrócenie płytki diamentowej, chociaż być może teraz będę mógł przepisać tę odpowiedź zgodnie z tą odpowiedzią.
źródło