Вы должны написать программу или функцию, которая получает строку, представляющую шахматную доску с только пешками в качестве входных и выходных данных или возвращает, возможен ли какой-либо захват на доске.
Входные данные находятся в FEN- подобной нотации, описывающей позиции белых и черных пешек без каких-либо других фигур. Вы должны решить, есть ли пешка, которая может захватить пешку противника.
Каждый ранг описан, начиная с ранга 8 и заканчивая рангом 1; в пределах каждого ранга содержимое каждого квадрата описывается от файла "a" до файла "h". Каждая пешка обозначена одной буквой (белая пешка = "P", черная пешка = "p",). Пустые квадраты отмечаются цифрами от 1 до 8 (количество пустых квадратов), а "/" разделяет ранги. (частично взято из Википедии)
Например
8/pppppppp/8/8/4P3/8/PPPP1PPP/8
описывает доску
--------
pppppppp
P
PPPP PPP
--------
Белая пешка может захватить черную, если черная расположена по диагонали вверх от нее (черные - вверх-влево или вверх-вправо), а черная пешка может захватить белую пешку, если белая находится по диагонали от нее (белая вниз-влево или вниз-вправо). Никакое другое движение захвата ( en passant ) не должно рассматриваться.
вход
- А Fen -как строка , состоящая из символов
12345678pP/
. - Входные данные описывают пешки действительной шахматной позиции. Это означает (среди других более сложных ограничений) будет максимум 8 пешек для каждой стороны и не будет пешек в рядах 1 и 8.
Выход
- Если есть возможность захвата для любой из сторон, вы должны вывести истинное значение и ложное значение в противном случае.
Примеры
Входы с правдивым выходом (по одному на строку)
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
Входы с ложным выходом (по одному на линию)
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
Это код гольф, поэтому выигрывает самый короткий вход.
7P
будет означать, что пешка находится на последнем восьмом файле. (Диаграмма была неправильной, хотя, я исправил это.)
8/pppppppp/8/8/8/7P/PPPP1PPP/8
?