Powinieneś napisać program lub funkcję, która odbiera ciąg reprezentujący szachownicę z tylko pionkami jako danymi wejściowymi i wyjściowymi lub zwraca, czy możliwe jest przechwycenie na planszy.
Dane wejściowe są w notacji FEN opisującej pozycje białych i czarnych pionków bez innych elementów. Powinieneś zdecydować, czy istnieje pionek, który może schwytać wroga.
Każda ranga jest opisana, począwszy od rangi 8, a kończąc na rangi 1; w obrębie każdej rangi zawartość każdego kwadratu jest opisana z pliku „a” do pliku „h”. Każdy pion jest oznaczony pojedynczą literą (biały pion = „P”, czarny pion = „p”,). Puste kwadraty są zapisywane za pomocą cyfr od 1 do 8 (liczba pustych kwadratów), a „/” rozdziela szeregi. (częściowo pochodzi z Wikipedii)
Na przykład
8/pppppppp/8/8/4P3/8/PPPP1PPP/8
opisuje tablicę
--------
pppppppp
P
PPPP PPP
--------
Biały pionek może schwytać czarnego, jeśli czarny jest ustawiony po przekątnej do góry (czarny jest w górę w lewo lub w górę w prawo), a czarny pionek może złapać biały, jeśli biały znajduje się po przekątnej (biały jest dół-lewo lub dół-prawo). Nie należy brać pod uwagę żadnego innego ruchu przechwytywania ( en passant ).
Wejście
- Ciąg typu FEN składający się z znaków
12345678pP/
. - Dane wejściowe opisują pionki prawidłowej pozycji w szachach. Oznacza to (między innymi bardziej złożonymi ograniczeniami), że po każdej stronie będzie maksymalnie 8 pionków i nie będzie pionków na poziomach 1 i 8.
Wynik
- Jeśli istnieje możliwość przechwycenia którejkolwiek ze stron, w przeciwnym razie powinieneś podać wartość prawdy i fałsz .
Przykłady
Wejścia z prawdziwym wyjściem (jeden na linię)
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
Wejścia z wyjściem falsy (jeden na linię)
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
To jest golf golfowy, więc wygrywa najkrótszy wpis.
7P
oznaczałoby, że pionek znajduje się w ostatnim 8. pliku. (Schemat był jednak niepoprawny, poprawiłem to.)
8/pppppppp/8/8/8/7P/PPPP1PPP/8
?