На этом уроке мы реализуем алгоритм взятия на проходе. Для этого мы доработаем ранее созданную заглушку is_pawn_passant(). Добавим вспомогательные переменные для хранения координат возможного взятия на проходе, они нам пригодится на следующем уроке.
Дата отправки отчёта:
11 февраля 2022 г.
Задание выполнено: за
19 мин.
Чему научился:
Добавил проверки в функцию is_pawn_passant: взятие на проходе возможно если белая пешка стоит на 4 горизонтали и битое поле находится слева или справа от пешки на одну клетку вверх.
Научился: pawn_attack_x && pawn_attack_y предположительно должны устанавливаться для каждой пешки, которая предприняла ход на две клетки
Только в этом случае актуально взятие на проходе и в случае хода на две клетки целесообразно отслеживать, а не вздумает ли кто срубить пешечку en passant
Научился: Прорабатывали "взятие на проходе". Думаю, ещё нужно прописать в необходимых условиях соответствующие действия "Тёмной Стороны" )))
Мы можем бить поле, через которое перескочила пешка противника. Т.к. это может быть только на одной линии, то и в условиях можно указать эту линию "-1" для стартовой позиции хода пешки, т.е. в нашем случае (с белыми): "4".
Т.к. пешка идёт по диагонали, то и смещение по иксу должно быть на единицу.
"Поле атаки" по иксу всегда "5" (шестая линия в массиве), а по игреку совпадает с "dy" атакуемой вражеской пешки.