Peças de xadrez (reis, rainhas, torres, bispos e cavaleiros) e peões estão em um tabuleiro, mas não no quadrado a1 ou h8 . Sua tarefa é viajar dos quadrados a1 vazios para os vazios h8 , passando apenas pelos quadrados vazios. As regras de movimento são as seguintes:
- Você pode prosseguir de qualquer quadrado vazio para qualquer quadrado vazio próximo a ele (mesma classificação, arquivo seguinte ou anterior; ou mesmo arquivo, classificação seguinte ou anterior).
- Você pode prosseguir de qualquer quadrado vazio para qualquer quadrado vazio na diagonal próximo a ele (classificação seguinte ou anterior, arquivo seguinte ou anterior), desde que os quadrados de cantinho contenham (a) dois peões ou (b) peões / peças opostas cor. (Duas peças que não são de peão, ou uma peça que não é de peão e um peão, da mesma cor são fortes o suficiente para impedir seu progresso no canto, mas dois peões não são; e peças / peões de cor oposta não funcionam Por exemplo, se você estiver em c4 e d5 estiver vazio, poderá prosseguir, desde que c5 e d4 contenham peões ou peças / peões de cor oposta. Veja a seção "Exemplo de diagonais", abaixo, para fotos.
Entrada
Descrição do conselho da FEN . Ou seja: A entrada será uma sequência que inclui uma descrição da classificação 8 , uma barra ( /
), uma descrição da classificação 7 , uma barra,… e uma descrição da classificação 1 . A descrição de cada classificação compreende números e letras que vão de um arquivo para outro h , onde as letras indicam peças e peões (os pretos são p
= peão, n
= cavaleiro, b
= bispo, r
= torre, q
= rainha, k
= rei e branco) uns são versões maiúsculas do mesmo) e os números indicam o número sucessivo de quadrados vazios. Por exemplo, rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBN
é o tabuleiro após um movimento de dobra (peão do rei para e4) em um jogo de xadrez.
a1 e h8 estarão vazios na entrada; ou seja, a primeira barra tem um dígito antes e a última barra tem um dígito depois.
Resultado
Verdade ou falsa, indicando se a passagem bem-sucedida para h8 é possível.
Se a entrada não for uma descrição válida da placa FEN (ou seja, uma que corresponda à minha explicação acima), ou se a1 ou h8 estiver ocupado, a saída poderá ser qualquer coisa ou nada. (Em outras palavras: você pode assumir que a entrada atende aos requisitos acima.)
Pontuação
Este é o código de golfe: o menor número de bytes vence.
Exemplo de entrada e saída
Observe que seu código deve funcionar para todas as entradas válidas, não apenas os exemplos.
Adicione um espaço e um w
após cada FEN para visualizá-lo http://www.dhtmlgoodies.com/scripts/chess-fen/chess-fen-3.html
. (Observe que alguns outros visualizadores online da FEN não permitirão um tabuleiro ilegal no xadrez, por exemplo, com um peão no ranking 1 ou 8 , portanto não podem ser usados para nossos propósitos.)
Exemplos de verdade
8/8/8/8/8/8/8/8
- o tabuleiro vazio1p1Q4/2p1Q3/2p1Q3/2p1Q3/2p1Q3/2p1Q3/Q1p1Q3/1q3q2
- existe um caminho a1 , b2 , b3 , b4 , b5 , b6 , b7 , c8 , d7 , ( não e8 , que está bloqueado, mas) d6 , d5 , d4 , d3 , d2 , d1 , e1 , f2 , f3 , f4 , f5 , f6 , f7 , f8 , g8 , h88/8/KKKKK3/K3K3/K1K1p3/Kp1K4/K1KK4/2KK4
- um exemplo em que um quadrado bloqueado em um ponto deve ser passado mais tarde (para garantir que você não defina quadrados como intransitáveis)K1k1K1K1/1K1k1K1k/K1K1k1K1/1k1K1K1k/K1k1K1k1/1K1k1k1K/K1K1k1K1/1k1k1K1k
- existe um único caminho (siga seu nariz: só existe um quadrado para mover a cada passo, a menos que dê um passo para trás); este também é um exemplo em que um quadrado é bloqueado em um ponto, mas necessário posteriormente
Exemplos de Falsey
6Q1/5N2/4Q3/3N4/2Q5/1N6/2Q5/1N6
- qualquer tentativa de caminho terá que passar por duas peças da mesma cor na diagonalN1q1K1P1/1R1b1p1n/r1B1B1Q1/1p1Q1p1b/B1P1R1N1/1B1P1Q1R/k1k1K1q1/1K1R1P1r
- o único caminho através da diagonal a8-h1 é em f2-g3 , mas isso exigiria a passagem por e1-d2 ou f2-e3 , que são impossíveis.4Q3/4q3/4Q3/5Q2/6Q1/3QqP2/2Q5/1Q6
4q3/4Q3/4q3/5q2/6q1/3qQp2/2q5/1q6
Diagonais de exemplo
Caso a prosa acima não esteja clara, aqui estão algumas fotos.
Diagonais aceitáveis
Diagonais intransponíveis