Debe escribir un programa o función que reciba una cadena que represente un tablero de ajedrez con solo peones como entrada y salida o devuelva si es posible alguna captura en el tablero.
La entrada está en una notación similar a FEN que describe las posiciones de los peones blancos y negros sin otras piezas presentes. Debes decidir si hay un peón que pueda capturar a un enemigo.
Cada rango se describe, comenzando con el rango 8 y terminando con el rango 1; dentro de cada rango, el contenido de cada cuadro se describe desde el archivo "a" hasta el archivo "h". Cada peón se identifica con una sola letra (peón blanco = "P", peón negro = "p",). Los cuadrados vacíos se observan utilizando los dígitos del 1 al 8 (el número de cuadrados vacíos), y "/" separa los rangos. (parcialmente tomado de Wikipedia)
Por ejemplo
8/pppppppp/8/8/4P3/8/PPPP1PPP/8
describe el tablero
--------
pppppppp
P
PPPP PPP
--------
Un peón blanco puede capturar uno negro si el negro se coloca diagonalmente hacia arriba (el negro está arriba a la izquierda o arriba a la derecha) y un peón negro puede capturar uno blanco si el blanco está diagonalmente debajo de él (el blanco es abajo-izquierda o abajo-derecha). Ningún otro movimiento de captura ( en passant ) debe ser considerado.
Entrada
- Una cadena tipo FEN que consta de los caracteres
12345678pP/
. - La entrada describe los peones de una posición de juego de ajedrez válida. Esto significa (entre otras restricciones más complejas) habrá como máximo 8 peones para cada lado y no hay peones en los rangos 1 y 8.
Salida
- Si hay una posible captura para cualquiera de los lados, debe generar un valor verdadero y un valor falso de lo contrario.
Ejemplos
Entradas con salida veraz (una por línea)
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 con salida falsa (una por línea)
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 es el código de golf, por lo que gana la entrada más corta.
7P
significaría que el peón está en el último octavo archivo. (Sin embargo, el diagrama era incorrecto, lo corregí.)
8/pppppppp/8/8/8/7P/PPPP1PPP/8
?