На этом уроке мы проверим, стоят ли короли на соседних клетках. Потом мы напишем заготовку для проверки, является ли позиция матовой. Самостоятельное задание - написать функцию onKnight(). При желании написать проверку для слона пока писать не нужно.
Дата отправки отчёта:
15 августа 2016 г.
Задание выполнено: за
2 час. 00 мин.
Чему научился:
Изучил алгоритм поиска матовых комбинаций, а также самостоятельно разработал проверку на слона и коня
Что было сложным:
Проверка слона.
Комментарии:
Значит, я решил танцевать от определения хода коня: две клетки прямо, одна вбок или наоборот, две вбок и одна прямо. Суть в том, что при любом раскладе расстояние от прошлого хода до нового равно корень из 5, считается теоремой Пифагора. Значение 5 дадут только 2 в квадрате и 1, потому что координаты целые. При запуске программа выдала ноль, что является правильным ответом, т.к. королём и конём не поставить мат.
Теперь по поводу слона: диагонали - это расстояние √2. Дать такую величину могут лишь равные значения (BishopX - BlackKingX) и (BishopУ- BlackKingУ). Но проблема есть: белый слон и король могут стоять на одной диагонали! Поэтому я проверил и это.
По поводу слона могу ошибаться, за коня уверен. :)
Научился: Особо ничему но пришлось подумать. Трудности: Не сразу додумался до простого решения. Сначала взялся писать проверочный код на 100500 строк. К счастью. осознание все таки вовремя пришло) Уж простите за критику, но мне очень не нравится как вы, Евгений называете переменные и методы. Если бы случайному человеку пришлось с нуля разбирать ваш код, ему пришлось бы несладно. OnKing вообще ни о чем не говорит, isCheckmate больше бы подошло булевому свойству, в bkx, wky можно запутаться в два счета. Это не хорошо, все же надо придерживаться какого то кодстиля.