Voir aussi: Wordagons
Défi
Étant donné un hexagone et un nombre n
en entrée, sortez le même hexagone tourné n
fois.
Hexagone
L'hexagone sera une chaîne comme ceci:
a b c
d d e e
f f o g g
h h i i
j k l
L'hexagone sera toujours régulier et ne contiendra que les caractères ASCII imprimables:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Rotation
Pour trouver la rotation de l'hexagone, multipliez n
par 60 degrés pour obtenir l'angle de rotation. Par exemple, en utilisant l'hexagone ci-dessus, si n
vaut 2, nous multiplions cela par 60 pour obtenir 120 degrés. Ensuite, nous faisons pivoter l'hexagone de 120 degrés:
j h f
k h f d
l i o d a
i g e b
g e c
Notez que chaque côté a bougé de deux côtés dans le sens des aiguilles d'une montre.
Si n
est positif, vous devez faire pivoter l'hexagone dans le sens des aiguilles d'une montre. Si n
est négatif, vous devez faire pivoter l'hexagone dans le sens inverse des aiguilles d'une montre.
n
sera toujours un entier compris entre -6 et 6 inclus.
Exemples
Contribution:
. u .
. | .
l - + - r
. | .
. d .
n
= 3
. d .
. | .
r - + - l
. | .
. u .
Contribution:
- - -
/ \
< >
\ /
- - -
n
= -1
Production:
- \ >
- /
- -
/ -
< \ -
Contribution:
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
Production:
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
Gagnant
Le programme le plus court en octets gagne.
la source
transform:rotate(x)
. Il s'avère que ce n'était pas une idée brillante, qui aurait su?Réponses:
Perl,
120119113107104102 octetsComprend +6 pour
-0pXi
Courez avec l'hexagone sur STDIN (rembourré avec des espaces pour que toutes les lignes aient la même longueur) et le nombre de rotations après -i.
rotagon.pl
Enfin, la matrice de rotation est plus courte que l'ancienne boucle double
la source
a
etn
pour que cela fonctionne.-F
implique-a
et implique-a
à son tour-n
Python 2,
160158156148124 octetsPréparez-vous à être étonné! Le texte résultant est dessiné sur une toile ... par un
Turtle
! :RÉEssayez-le en ligne - Prend également en charge les rotations décimales!
Si vous préférez que la tortue ait la forme d'une seule, vous pouvez ajouter la ligne
t.shape("turtle")
.Affichez l'historique des révisions pour voir les versions antérieures.
Alias utilisés :
up()
-penup()
rt()
-right()
lt()
-left()
fd()
-forward()
bk()
-backward()
Merci à Sherlock9 pour les suggestions !
la source
t.write('\n')
fonctionnait ...t.up()
, je serais là.Python 2.7, 151 octets
Exemple:
la source
JavaScript (ES6),
130127 octetsInitialement basé sur ma réponse à Rotation d'un carreau de diamant, bien que je puisse maintenant réécrire cette réponse dans le sens de cette réponse.
la source