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