Il gioco delle pedine cinesi si gioca su una tavola con spazi a forma di stella a sei punte:
Possiamo creare una rappresentazione in arte ASCII di questa scheda, usando .
per i punti vuoti e le lettere GYORPB
per le sei posizioni di partenza colorate:
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
Per renderlo più interessante, possiamo anche cambiare la dimensione. Misureremo le dimensioni di una tavola in base alla lunghezza laterale delle sue posizioni triangolari di partenza: la tavola sopra è la dimensione 4.
Dato che è davvero una seccatura scrivere tutto ciò a mano, scriviamo un programma (o una funzione) per farlo!
Dettagli
Il codice deve assumere un numero intero positivo che rappresenti la dimensione della scheda, tramite STDIN, ARGV o argomento della funzione. Emetti il motivo a scacchiera su STDOUT (puoi alternativamente restituirlo come stringa se il tuo invio è una funzione).
L'output deve essere
- non ha affatto spazi finali, o
- avere spazi trailing esattamente sufficienti per riempire il modello in un rettangolo perfetto di larghezza 6 * N + 1.
L'output può facoltativamente avere una nuova riga finale. Non sono consentiti altri spazi extra (iniziali, finali).
Esempi
Taglia 1:
G
B . . Y
. . .
P . . O
R
Taglia 2:
G
G G
B B . . . Y Y
B . . . . Y
. . . . .
P . . . . O
P P . . . O O
R R
R
Taglia 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
punteggio
Questo è code-golf : vince il codice più breve in byte.