Jack e Jane decidiram jogar uma partida de xadrez para passar o tempo fora. Infelizmente, Jack é bastante ruim em visualizar. Ele acha difícil imaginar os movimentos possíveis para uma determinada peça que não seja um peão, é claro!
Seu desafio é ajudar a encontrar Jack as opções possíveis para uma determinada peça (exceto um peão).
Caso se tenha esquecido, as várias peças são indicadas por:
- K: King
- Q: rainha
- N: Cavaleiro
- B: Bispo
- R: Rook
Como um exemplo, na imagem seguinte o cavaleiro está localizado na d4
e pode mover-se para c2
, b3
, b5
, c6
, e6
, f5
, f3
, e2
. Para uma determinada entrada:
Nd4
você produziria:
Nc2 Nb3 Nb5 Nc6 Ne6 Nf5 Nf3 Ne2
Regras:
- A ordem da saída não importa, desde que todos os movimentos possíveis estejam listados
- Os movimentos possíveis podem ser separados por espaços em branco, novas linhas ou qualquer outro delimitador
- A entrada pode ser transmitida ao programa como parâmetro ou via
STDIN
- Os espaços em branco no programa devem ser contados; portanto, faça o melhor uso possível.
Isso é código de golfe. (Evite usar quaisquer ferramentas / utilitários projetados especificamente para essa finalidade.) A resposta mais curta vence!
f(x)... case "Q": {f("B");f("R")}
se a função exigir #includes, essas devem fazer parte da contagem de bytes.