Ver también: Wordagons
Desafío
Dado un hexágono y un número ncomo entrada, genera el mismo hexágono rotado nveces.
Hexágono
El hexágono será una cadena así:
a b c
d d e e
f f o g g
h h i i
j k l
El hexágono siempre será regular y solo contendrá los caracteres ASCII imprimibles:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Rotación
Para saber cuánto girar el hexágono, multiplique npor 60 grados para obtener el ángulo de rotación. Por ejemplo, usando el hexágono anterior, si nes 2, multiplicamos eso por 60 para obtener 120 grados. Luego, rotamos el hexágono 120 grados:
j h f
k h f d
l i o d a
i g e b
g e c
Tenga en cuenta que cada lado se ha movido dos lados en sentido horario.
Si nes positivo, debe girar el hexágono en sentido horario. Si nes negativo, debe girar el hexágono en sentido antihorario.
n siempre será un número entero en el rango de -6 a 6 inclusive.
Ejemplos
Entrada:
. u .
. | .
l - + - r
. | .
. d .
n = 3
. d .
. | .
r - + - l
. | .
. u .
Entrada:
- - -
/ \
< >
\ /
- - -
n = -1
Salida:
- \ >
- /
- -
/ -
< \ -
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
Salida:
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
Victorioso
El programa más corto en bytes gana.
fuente

transform:rotate(x). Resulta que no era una idea brillante, ¿quién lo hubiera sabido?Respuestas:
Perl,
120119113107104102 bytesIncluye +6 para
-0pXiCorre con el hexágono en STDIN (rellenado con espacios para que todas las líneas tengan la misma longitud) y el número de rotaciones después de -i.
rotagon.plFinalmente conseguí que la matriz de rotación fuera más corta que el viejo doble bucle
fuente
aynpara que esto funcione.-Fimplica-ay-aa su vez implica-nPython 2,
160158156148124 bytes¡Prepárate para sorprenderte! El texto resultante se dibuja en un lienzo ... por a
Turtle! :REPruébelo en línea : ¡también admite rotaciones decimales!
Si prefiere que la tortuga tenga la forma de una, puede agregar la línea
t.shape("turtle").Ver el historial de revisiones para ver versiones anteriores.
Alias utilizados :
up()-penup()rt()-right()lt()-left()fd()-forward()bk()-backward()¡Gracias a Sherlock9 por las sugerencias !
fuente
t.write('\n')funcionara ...t.up(), estaría allí.Python 2.7, 151 bytes
Ejemplo:
fuente
Javascript (ES6),
130127 bytesOriginalmente basado en mi respuesta a Rotar un mosaico de diamantes, aunque ahora podría reescribir esa respuesta en la línea de esta respuesta.
fuente