Veja também: Wordagons
Desafio
Dado um hexágono e um número n
como entrada, produza os mesmos n
tempos de rotação do hexágono .
Hexágono
O hexágono será uma string assim:
a b c
d d e e
f f o g g
h h i i
j k l
O hexágono sempre será regular e sempre conterá apenas os caracteres ASCII imprimíveis:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Rotação
Para descobrir quanto girar o hexágono, multiplique n
por 60 graus para obter o ângulo de rotação. Por exemplo, usando o hexágono acima, se n
for 2, multiplicamos por 60 para obter 120 graus. Em seguida, giramos o hexágono em 120 graus:
j h f
k h f d
l i o d a
i g e b
g e c
Observe que cada lado se moveu dois lados no sentido horário.
Se n
for positivo, você deve girar o hexágono no sentido horário. Se n
for negativo, você deve girar o hexágono no sentido anti-horário.
n
sempre será um número inteiro no intervalo de -6 a 6, inclusive.
Exemplos
Entrada:
. u .
. | .
l - + - r
. | .
. d .
n
= 3
. d .
. | .
r - + - l
. | .
. u .
Entrada:
- - -
/ \
< >
\ /
- - -
n
= -1
Resultado:
- \ >
- /
- -
/ -
< \ -
Entrada:
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
Resultado:
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
Ganhando
O programa mais curto em bytes vence.
transform:rotate(x)
. Acontece que não era uma ideia brilhante, quem saberia?