Um saltador é uma categoria de peça de xadrez de fada que se move "pulando". Um cavaleiro normal é um (1,2) -leaper, significando que cada movimento envolve mover uma distância de 1 quadrado em uma direção ortogonal e 2 quadrados na direção perpendicular.
.o.o.
o...o
..N..
o...o
.o.o.
Existem muitos saltadores diferentes. O (1,3) -leaper é chamado de Cavaleiro Longo, ou Camelo. Seu padrão de movimento é assim:
..o.o..
.......
o.....o
...L...
o.....o
.......
..o.o..
Há também o (2,2) Alfil ...
o...o
.....
..A..
.....
o...o
... e até o (0,1) Wazir.
.o.
oWo
.o.
Desafio
Dado um par de números como entrada, imprima o diagrama de movimento correspondente. Você pode escrever um programa ou função, com a entrada fornecida via STDIN / linha de comando ou como argumento, e a saída fornecida por STDOUT ou o valor de retorno. Isso é código-golfe .
Entrada
A entrada será uma lista separada por vírgula de dois números inteiros e uma letra maiúscula. Os dois números inteiros estarão no intervalo 0-7
(inclusive) e em ordem não decrescente. Trailing newline opcional para entrada e saída.
Aqui estão as entradas para os quatro exemplos acima:
1,2,N
1,3,L
2,2,A
0,1,W
Resultado
A saída será uma sequência multilinha em formato quadrado. A letra maiúscula será colocada no centro para representar a localização atual da peça. Os locais dos movimentos serão representados por 4 ou 8 letras minúsculas o
. Todos os outros espaços da praça serão preenchidos com pontos.
Se o padrão de movimento for 0,0
, imprima apenas a letra maiúscula.
Como sugestão, se o segundo inteiro (o maior) tiver valor N, o quadrado sempre terá o comprimento lateral 2N + 1. Os o
sempre estarão no perímetro do quadrado.
Casos de teste adicionais
1,1,F
o.o
.F.
o.o
5,7,Q
..o.........o..
...............
o.............o
...............
...............
...............
...............
.......Q.......
...............
...............
...............
...............
o.............o
...............
..o.........o..
0,0,J
J