Атомні шахи - це (дуже веселий) варіант шахів, в якому кожен захоплення викликає «вибух», знищуючи захоплений шматок, шматок, що робить захоплення, та всі не пішаки в радіусі 1 квадрата. Мета цього виклику - не грати цілу гру в атомні шахи, а просто імітувати те, що відбувається, коли зроблений певний крок.
Відмова від відповідальності: Вибухові звукові ефекти не включені.
Вхідні дані
Позиція ради буде надана в Нотації Форсайта-Едвардса (загальновідоме як FEN), але лише з першим полем. Наприклад, вхід:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
представляє вихідну позицію:
Це потрібно сприймати як рядок або еквівалент вашої мови. Це гарантовано є дійсним; наприклад, вам не потрібно дбати про те, чи є десять королів чи взагалі немає царя.
Вам також буде наданий хід, який ви повинні імітувати, який представлений у вигляді двох квадратних назв: квадрат, на якому знаходиться деталь, яку потрібно перемістити, і квадрат, до якого вона рухається. Наприклад, переміщення пішака короля на два проміжки вперед на вищезгаданій картині буде представлено у вигляді:
e2e4
Це також слід сприймати як рядок. Переміщення завжди буде дійсним, і вам не потрібно підтримувати кастинг . Вам потрібно підтримати « пасажира» , що буде детальніше пояснено у наступному розділі.
Вихідні дані
Вихід вашої програми повинен знаходитися в тій же частковій позначці FEN, що і вхід, із заданим переміщенням (а також будь-які шматки, якщо це необхідно).
Точні правила вибухів - коли захоплено шматок:
Вийміть фрагмент, який захоплюється (це завжди буде фрагмент на другому квадраті, названому на вході, за винятком випадків, коли захоплення є прохідним ).
Вийміть шматок, який робить захоплення (це завжди буде фрагмент на першому квадраті, названому на вводі).
Видаліть кожен фрагмент:
розташований на одному з 8 квадратів, що оточують той, де відбувся захоплення (для пасантів - це площа, на якій знаходилася б пішачна пішачка, якби вона не вибухнула).
не пішак.
Швидкий огляд правил прохідності для тих, хто не знайомий: якщо пішак рухає два проміжки вперед від свого початкового рангу, і є пішак, який міг би захопити його, якби він перемістився лише на один квадрат вперед, він все одно може захопити його, але лише на наступний хід. Цей захоплення, як кажуть, робиться " мимохідь " (або французькою мовою: " en passant ").
Тестові справи
На малюнках зелені стрілки репресують хід, який потрібно зробити, а зелені кружечки представляють вибухані шматки.
Вхід: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
, g1f3
вихід:rnbqkbnr/pppppppp/8/8/8/5N2/PPPPPPPP/RNBQKB1R
Вхід: 3kBb1r/pp5p/3p4/4pn2/P7/1P2P1pP/2rP1P2/R1B3RK
, f2g3
вихід: 3kBb1r/pp5p/3p4/4pn2/P7/1P2P2P/2rP4/R1B3RK
(вкрадено з http://en.lichess.org/ocoSfS5I/white#36 )
Вхід: rnbqk1nr/1pp5/p2pp1pp/5p2/1bN5/2P1PQ1N/PP1P1PPP/R1B1KB1R
, f3b7
вихід:3qk1nr/2p5/p2pp1pp/5p2/1bN5/2P1P2N/PP1P1PPP/R1B1KB1R
(вкрадено з http://en.lichess.org/NCUnA6LV/white#14 )
Вхід: rnbqk2r/pp2p2p/2p3pb/3pP3/5P2/2N5/PPPP2P1/R1BQKB1R
, e5d6
вихід:rnbqk2r/pp2p2p/2p3pb/8/5P2/2N5/PPPP2P1/R1BQKB1R
(вкрадено з http://en.lichess.org/AvgU4Skq/white#16 , це не фактичний хід, але я не міг бути стурбований , щоб знайти атомну гру , яка на самому ділі була Мимохідь: П)
Вхід: 5r2/2k5/p1B5/1pP1p3/1P4P1/3P4/P7/1K3R1q
, c6h1
вихід:5r2/2k5/p7/1pP1p3/1P4P1/3P4/P7/1K3R2
(вкрадено з http://en.lichess.org/l77efXEb/white#58 )
Оцінка балів
Це код-гольф , тому виграє найкоротший код у байтах.