На этом уроке мы реализуем функцию is_check(), чтобы король не ходил на клетку, которая под боем.
На время теста вы уберём все пешки и добавим функцию is_check() с генерируемой случайностью шаха для всех фигур на поле.
Дата отправки отчёта:
11 января 2017 г.
Задание выполнено: за
10 мин.
Чему научился:
Повторил пройденное
Что было сложным:
найти время
Комментарии:
Не все ходы доступны, потому что функция is_check() возвращает ШАХ в 20% случаях для каждой клетки по которой может ходить выбранная фигура =)
Научился: Доработана функция can_move()
Добавлена функция is_check() Трудности: Не все ходы доступны, так как после условно недоступного хода был бы условный шах королю ходившей стороны.
Мой алгоритм функции is_check() :
условно допустить сделанный ход,
найти координату короля ходившей стороны (она могла поменяться, но не обязательно),
проверить. может ли фигура соперника (Q R B N) пойти на координату с твоим королем, ИЛИ
проверить, может ли пешка соперника побить наискосок координату с твоим королем.
Если оба вопроса ложь, то возвращаем ложь, шаха нет.
Если же координата под боем, возвращаем истину, нашему королю шах.