Gra w chińskie warcaby rozgrywana jest na planszy ze spacjami w kształcie sześcioramiennej gwiazdy:
Możemy stworzyć ASCII-graficzną reprezentację tej tablicy, używając .
pustych miejsc i liter GYORPB
dla sześciu kolorowych początkowych lokalizacji:
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
Aby było bardziej interesująco, możemy również zmienić rozmiar. Zmierzymy rozmiar deski na podstawie długości boków jej trójkątnych początkowych lokalizacji: deska powyżej ma rozmiar 4.
Ponieważ pisanie tego wszystkiego ręcznie jest bardzo trudne, napiszmy program (lub funkcję), aby to zrobić!
Detale
Twój kod powinien przyjmować dodatnią liczbę całkowitą reprezentującą rozmiar płytki, poprzez STDIN, ARGV lub argument funkcji. Wyjście wzoru szachownicy do STDOUT (możesz naprzemiennie zwrócić go jako ciąg, jeśli przesłanie jest funkcją).
Wyjście musi albo
- nie mają żadnych spacji końcowych, lub
- mieć dokładnie tyle spacji końcowych, aby wypełnić wzór do idealnego prostokąta o szerokości 6 * N + 1.
Wyjście może opcjonalnie mieć końcowy znak nowej linii. Żadne inne dodatkowe (wiodące, końcowe) białe znaki nie są dozwolone.
Przykłady
Rozmiar 1:
G
B . . Y
. . .
P . . O
R
Rozmiar 2:
G
G G
B B . . . Y Y
B . . . . Y
. . . . .
P . . . . O
P P . . . O O
R R
R
Rozmiar 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
Punktacja
To jest code-golf : wygrywa najkrótszy kod w bajtach.