Dovresti scrivere un programma o una funzione che riceve una stringa che rappresenta una scacchiera con solo pedine come input e output o restituisce se è possibile catturare sulla board.
L'input è in una notazione simile a una FEN che descrive le posizioni di pedine bianche e nere senza altri pezzi presenti. Dovresti decidere se esiste una pedina che può catturare una pedina nemica.
Ogni rango è descritto, iniziando dal rango 8 e finendo con il rango 1; all'interno di ogni rango, i contenuti di ciascun quadrato sono descritti dal file "a" al file "h". Ogni pedone è identificato da una singola lettera (pedone bianco = "P", pedone nero = "p",). I quadrati vuoti vengono annotati usando le cifre da 1 a 8 (il numero di quadrati vuoti) e "/" separa i ranghi. (parzialmente tratto da Wikipedia)
Per esempio
8/pppppppp/8/8/4P3/8/PPPP1PPP/8
descrive la scheda
--------
pppppppp
P
PPPP PPP
--------
Una pedina bianca può catturarne una nera se quella nera è posizionata diagonalmente in alto da essa (il nero è su-sinistra o su-destra) e una pedina nera può catturarne una bianca se quella bianca è diagonalmente sotto di essa (il bianco è in basso a sinistra o in basso a destra). Nessun'altra mossa di cattura ( en passant ) dovrebbe essere presa in considerazione.
Ingresso
- Una stringa simile alla FEN composta dai caratteri
12345678pP/
. - L'input descrive le pedine di una posizione di gioco di scacchi valida. Ciò significa (tra gli altri vincoli più complessi) ci saranno al massimo 8 pedine per ogni lato e nessuna pedina nei ranghi 1 e 8.
Produzione
- Se esiste una possibile acquisizione per entrambe le parti, dovresti generare un valore di verità e un valore di falsa in caso contrario.
Esempi
Ingressi con output sincero (uno per riga)
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
Ingressi con uscita falsy (uno per riga)
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
Questo è il codice golf, quindi vince l'ingresso più breve.
7P
significherebbe che il pedone si trova sull'ultimo, ottavo file. (Il diagramma era errato, l'ho corretto.)
8/pppppppp/8/8/8/7P/PPPP1PPP/8
?