O xadrez hexagonal descreve uma família de variantes de xadrez jogadas em um tabuleiro em que as células são hexágonos em vez dos quadrados tradicionais. Existem muitas dessas variantes; neste desafio, focaremos na variante de Gliński, que é a mais comum.
O tabuleiro é composto de três cores (para que a mesma cor não compartilhe uma borda), com as bordas dos hexágonos voltadas para os jogadores. O quadro possui 11 arquivos, marcados com letras a
a l
(carta j
não é usada) e 11 fileiras (que dobram 60 ° no arquivo f
). As classificações 1
em 6
cada uma contêm 11 células, a classificação 7
possui 9 células, a classificação 8
possui 7 e assim por diante. A classificação 11
contém exatamente uma célula: f11 . (Se ajudar, pense em cada classificação como formando um "V" muito amplo.)
Aqui está um exemplo de quadro do quadro, com o cavaleiro na célula central. As células marcadas com um ponto são os movimentos legais desse cavaleiro em particular. O cavaleiro se move de maneira semelhante ao xadrez "normal", dois para baixo e um para cima. Em termos de xadrez hexagonal, é um movimento ortogonal (através de uma aresta), depois um movimento diagonal na mesma direção (o movimento mais próximo da mesma cor). Por exemplo, com o cavaleiro abaixo, um movimento ortogonal "para cima" para o marrom claro é então acompanhado por um movimento diagonal "para cima e para a direita" ou "para cima e para a esquerda" para o marrom mais próximo.
Do domínio público via https://commons.wikimedia.org/wiki/File:Glinski_Chess_Knight.svg
Este cavaleiro está posicionado em f6 e os movimentos legais são assim
c4, c5, d3, d7, e3, e8, g3, g8, h3, h7, i4, i5
Entrada
Uma única entrada dando a célula inicial do nosso cavaleiro. Pode ser como uma única sequência "b6"
, como duas "b", "6"
, etc., em qualquer formato conveniente . As letras de entrada podem ser maiúsculas ou minúsculas - sua escolha.
Resultado
Uma lista dos movimentos válidos que um cavaleiro nesse local pode fazer. Pode ser como uma matriz de seqüências de caracteres, uma única sequência com um delimitador inequívoco e consistente, sequências separadas por novas linhas etc., o que for mais conveniente. A saída não precisa necessariamente estar em ordem classificada e pode estar em maiúscula ou minúscula - sua escolha.
Regras
- Suponha que não haja outras peças no tabuleiro ou interfira nos movimentos. Estamos nos concentrando apenas no cavaleiro.
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- Se possível, inclua um link para um ambiente de teste on-line para que outras pessoas possam experimentar seu código!
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
Exemplos
b6
a3, c4, d5, d9, e7, e8
f6
c4, c5, d3, d7, e3, e8, g3, g8, h3, h7, i4, i5
f11
d8, e8, g8, h8
i1
f2, f3, g4, h4, l2, k3