Шахові фігури (королі, королеви, граки, єпископи та лицарі) та пішаки знаходяться на дошці, але не на площі a1 чи h8 . Ваше завдання - подорожувати від порожнього квадрата a1 до порожнього квадрату h8 , проходячи лише через порожні квадрати. Правила руху такі:
- Ви можете переходити з будь-якого порожнього квадрата до будь-якого порожнього квадрата поруч (той самий ранг, наступний чи попередній файл; або той самий файл, наступний чи попередній ранг).
- Ви можете переходити з будь-якого порожнього квадрата до будь-якого порожнього квадрата по діагоналі поруч із ним (наступний чи попередній ранг, наступний чи попередній файл), за умови, що квадратні куточки містять або (a) дві пішаки, або (b) пішаки / шматки навпроти колір. (Два шматки, які не є пішаками, або шматок пішака та пішака одного кольору, є досить сильними, щоб перешкодити вашому просуванню через кут, але дві пішаки - ні; шматки / пішаки іншого кольору не працюють концертуйте, щоб перешкодити своєму шляху.) Наприклад, якщо ви на c4 і d5 порожній, ви можете перейти до нього, якщо c5 і d4 містять пішаків або містять шматки / пішаки протилежного кольору. Дивіться розділ "Прикладні діагоналі" нижче для зображень.
Вхідні дані
Опис дошки FEN Тобто: вхідним рядком буде рядок, що включає опис рангу 8 , косою рискою ( /
), описом 7 рангу , косою рисою… та описом рангу 1 . Опис кожного рангу містить цифри та літери , що ведуться від файлу a до файлу h , де букви позначають шматки та пішаки (чорні p
= пішак, n
= лицар, b
= єпископ, r
= грак, q
= королева, k
= король, а білі одні з них з великої літери), а цифри позначають послідовне число порожніх квадратів. Наприклад, rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBN
це дошка після одного планового руху (пішака короля до e4) у шаховій грі.
a1 і h8 будуть порожніми на вході; тобто перша коса коса риса має цифру перед нею, а остання коса коса риса - після неї.
Вихідні дані
Truthy або falsey, що вказує на те, чи можливий успішний перехід до h8 .
Якщо вхід не є дійсним описом плати FEN (означає, що відповідає моєму поясненню вище), або якщо a1 або h8 зайнято, то вихід може бути будь-яким або нічого. (Іншими словами: ви можете припустити, що вхід відповідає вимогам, наведеним вище.)
Оцінка балів
Це кодовий гольф: виграє найменше байтів.
Приклад введення та виведення
Зауважте, що ваш код повинен працювати для всіх дійсних входів, а не лише для прикладів.
Додайте пробіл та w
після кожного FEN, щоб візуалізувати його на http://www.dhtmlgoodies.com/scripts/chess-fen/chess-fen-3.html
. (Зверніть увагу, що деякі інші онлайн-візуалізатори FEN не дозволять забороняти шахи на дошці, наприклад, з пішаком на рангу 1 або 8 , тому не можна використовувати для наших цілей.)
Приклади правди
8/8/8/8/8/8/8/8
- порожня дошка1p1Q4/2p1Q3/2p1Q3/2p1Q3/2p1Q3/2p1Q3/Q1p1Q3/1q3q2
- є шлях a1 , b2 , b3 , b4 , b5 , b6 , b7 , c8 , d7 , ( не e8 , це заблоковано, але) d6 , d5 , d4 , d3 , d2 , d1 , e1 , f2 , f3 , f4 , f5 , f6 , f7 , f8 , g8 , h88/8/KKKKK3/K3K3/K1K1p3/Kp1K4/K1KK4/2KK4
- приклад, коли квадрат, заблокований в одній точці, повинен бути переданий пізніше (щоб переконатися, що ви не встановлюєте квадрати як непрохідні)K1k1K1K1/1K1k1K1k/K1K1k1K1/1k1K1K1k/K1k1K1k1/1K1k1k1K/K1K1k1K1/1k1k1K1k
- Є єдиний шлях через (просто слідкуйте за носом: на кожному кроці потрібно рухатись лише один квадрат, якщо тільки не зробити крок назад); це також приклад, коли квадрат блокується в одній точці, але необхідний пізніше
Приклади Фальсі
6Q1/5N2/4Q3/3N4/2Q5/1N6/2Q5/1N6
- будь-яка спроба шляху повинна пройти через дві діагонально розташовані одноколірні фігуриN1q1K1P1/1R1b1p1n/r1B1B1Q1/1p1Q1p1b/B1P1R1N1/1B1P1Q1R/k1k1K1q1/1K1R1P1r
- єдиний шлях по діагоналі a8-h1 знаходиться на f2-g3 , але це вимагатиме проходження через e1-d2 або f2-e3 , які є і неможливими.4Q3/4q3/4Q3/5Q2/6Q1/3QqP2/2Q5/1Q6
4q3/4Q3/4q3/5q2/6q1/3qQp2/2q5/1q6
Приклад діагоналей
Якщо проза вище була неясною, ось кілька картинок.
Прохідні діагоналі
Непрохідні діагоналі