Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович
1-2-3 мая - Создай online игру!

Мат Конём и Слоном / Королевское правило

  • На этом уроке мы проверим, стоят ли короли на соседних клетках.
    Потом мы напишем заготовку для проверки, является ли позиция матовой.
    Самостоятельное задание - написать функцию onKnight().
    При желании написать проверку для слона пока писать не нужно.
  • Дата отправки отчёта: 13 июля 2016 г.
  • Задание выполнено: за 17 мин.
  • Чему научился: Писать цикл для перебора всех клеток вокруг черного короля.
    Писать проверку атаки коня на клетку.
  • Что было сложным: ---
  • Комментарии: ---
  • Оценка видео-уроку:
Отчёт от 9263 за Мат Конём и Слоном / Королевское правило




Оцени работу

 
Сохранить страницу:


Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

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