Le jeu des dames chinoises se joue sur un plateau avec des espaces en forme d'étoile à six branches:
Nous pouvons créer une représentation ASCII de cette carte, en utilisant .
pour les emplacements vides et les lettres GYORPB
pour les six emplacements de départ colorés:
G
G G
G G G
G G G G
B B B B . . . . . Y Y Y Y
B B B . . . . . . Y Y Y
B B . . . . . . . Y Y
B . . . . . . . . Y
. . . . . . . . .
P . . . . . . . . O
P P . . . . . . . O O
P P P . . . . . . O O O
P P P P . . . . . O O O O
R R R R
R R R
R R
R
Pour le rendre plus intéressant, nous pouvons également changer la taille. Nous mesurerons la taille d'une planche par la longueur latérale de ses emplacements de départ triangulaires: la planche ci-dessus est de taille 4.
Puisqu'il est vraiment difficile de taper tout cela à la main, écrivons un programme (ou une fonction) pour le faire!
Détails
Votre code doit prendre un entier positif représentant la taille de la carte, via STDIN, ARGV ou un argument de fonction. Sortez le motif en damier sur STDOUT (vous pouvez alternativement le renvoyer sous forme de chaîne si votre soumission est une fonction).
La sortie doit soit
- n'ont aucun espace de fin, ou
- avoir exactement suffisamment d'espaces de fin pour remplir le motif en un rectangle parfait de largeur 6 * N + 1.
La sortie peut éventuellement avoir une nouvelle ligne de fin. Aucun autre espace supplémentaire (avant, arrière) n'est autorisé.
Exemples
Taille 1:
G
B . . Y
. . .
P . . O
R
Taille 2:
G
G G
B B . . . Y Y
B . . . . Y
. . . . .
P . . . . O
P P . . . O O
R R
R
Taille 4:
G
G G
G G G
G G G G
B B B B . . . . . Y Y Y Y
B B B . . . . . . Y Y Y
B B . . . . . . . Y Y
B . . . . . . . . Y
. . . . . . . . .
P . . . . . . . . O
P P . . . . . . . O O
P P P . . . . . . O O O
P P P P . . . . . O O O O
R R R R
R R R
R R
R
Notation
C'est le code-golf : le code le plus court en octets gagne.