Un damier chinois ressemble à ceci (basé sur cette question , mais cette fois il a une taille fixe):
G
. G
G G G
G G . G
B B B B . . Y G . Y . Y Y
B B B . . G . . . Y Y Y
B . B . . . . . Y . Y
B . . . . . . . . Y
. . . . . . . . .
. P . . . . . O O .
P P . . . . . . . O O
P P P . . . R . . O O .
P P P P . . R . . O O O O
R . R R
R R R
R .
R
Chaque caractère non espace dans cet exemple peut être remplacé par n'importe quel caractère ASCII imprimable non espace dans l'entrée, tandis que les espaces ne sont jamais modifiés. Notez qu'il n'est pas garanti d'être un arrangement valide dans le vérificateur chinois (tel qu'il ne peut pas avoir exactement 7 types de caractères différents).
Votre tâche consiste à le faire pivoter d'un multiple de 60 degrés.
Voici l'exemple ci-dessus tourné de 60 degrés dans le sens des aiguilles d'une montre:
B
B B
B B B
B . B B
P P P . . . B . . G G . G
P P P P . . . . . G G G
P P . . . . . G Y . G
P . . . . . . . G G
. . . . . . . . .
R . . . . . . . . Y
R . R R . . . . Y Y .
R R R . . . O . . . Y Y
R . R R . . . O . Y Y Y Y
O O O .
O O O
O .
O
L'entrée est un entier non négatif et un damier chinois. Votre programme (ou fonction) doit le faire pivoter de l'entier * 60 degrés. Vous décidez de faire pivoter dans le sens horaire ou antihoraire, tant qu'il est cohérent. L'entrée et la sortie ne doivent pas avoir d'espaces de début ou de fin supplémentaires.
C'est du code-golf. Le code le plus court gagne.
la source
_,,Sf*\.+W%ze_
.liq{_N/eeSf.*W%:szsS-\{_' >{;(}&\}/;]}@*
, mais je pensais à tourner de 60 degrés, pas de 45 degrés lorsque j'écrivais ce défi ...qN/(i{_eeSf.*W%:szSf-{},.{' f+sW<\,' e[}}*N*
c'est encore plus long que ce que j'avais avant ...Python 2, 171 octets
C'est peut-être la seule fois que j'ai trouvé
str.splitlines
utile - pour toutes les autres fois,.split("\n")
c'est plus court.Utilisez comme
f(S,10)
.Explication
Pour chaque caractère en entrée, nous:
Pour déterminer avec quel caractère remplacer, nous convertissons la grille en coordonnées de cube
(x, y, z)
, tournons lesn
temps en transformant(x, y, z) -> (-y, -z, -x)
, puis reconvertissons.la source