Você deve escrever um programa ou função que receba uma string representando um tabuleiro de xadrez com apenas peões como entrada e saída ou retorne se é possível capturar qualquer placa no tabuleiro.
A entrada está em uma notação semelhante à FEN , descrevendo posições de peões brancos e pretos sem outras peças presentes. Você deve decidir se existe um peão que possa capturar um inimigo.
Cada classificação é descrita, começando com a classificação 8 e terminando com a classificação 1; dentro de cada classificação, o conteúdo de cada quadrado é descrito do arquivo "a" ao arquivo "h". Cada peão é identificado por uma única letra (peão branco = "P", peão preto = "p"). Os quadrados vazios são anotados usando os dígitos de 1 a 8 (o número de quadrados vazios) e "/" separa as classificações. (parcialmente retirado da Wikipedia)
Por exemplo
8/pppppppp/8/8/4P3/8/PPPP1PPP/8
descreve o quadro
--------
pppppppp
P
PPPP PPP
--------
Um peão branco pode capturar um preto se o preto estiver posicionado na diagonal para cima (o preto é para cima esquerdo ou para a direita) e um peão preto pode capturar um branco se o branco estiver diagonalmente abaixo dele (o branco é baixo-esquerda ou baixo-direita). Nenhum outro movimento de captura ( em passante ) deve ser considerado.
Entrada
- Uma sequência semelhante a FEN que consiste nos caracteres
12345678pP/
. - A entrada descreve os peões de uma posição válida no jogo de xadrez. Isso significa (entre outras restrições mais complexas) que haverá no máximo 8 peões para cada lado e nenhum peão nas fileiras 1 e 8.
Resultado
- Se há uma possível captura para cada lado você deve saída um truthy valor e um Falsas valor de outra forma.
Exemplos
Entradas com saída de verdade (uma por linha)
8/7p/6P1/8/8/8/8/8
8/8/p7/1P6/3P3p/8/8/8
8/2P5/8/4P1p1/2p2P2/3p4/3p1P2/8
8/P7/8/5P2/2pp4/3P2p1/3pP3/8
8/P7/p7/p1P1P3/1P3p2/8/1p6/8
8/4p1P1/2P2P1P/2p1pPpp/8/6P1/pP1p4/8
Entradas com saída falsa (uma por linha)
8/8/8/8/8/8/8/8
8/7P/6p1/8/8/8/8/8
8/7p/7P/8/8/8/8/8
8/pppppppp/8/8/8/8/PPPPPPPP/8
8/p7/8/1p6/5P2/8/8/8
8/p7/P7/2P1p1p1/2p5/8/PP6/8
Este é um código de golfe, portanto a entrada mais curta vence.
7P
significa que o peão está no último, oitavo arquivo. (O diagrama foi embora incorrecta, eu que corrigido.)
8/pppppppp/8/8/8/7P/PPPP1PPP/8
?