#17 Программирование шахмат на C# - правило 50 ходов
00:00 Введение в правило 50 ходов • Объяснение правила: ничья объявляется, если в течение 50 ходов подряд не было взятия фигуры и хода пешки. • Идея реализации: добавление переменной-счётчика для отслеживания последовательных ходов без взятий и ходов пешек. 00:31 Принцип работы счётчика • При взятии фигуры или ходе пешки счётчик сбрасывается до нуля. • В остальных случаях счётчик увеличивается. 01:22 Реализация в базовом классе хода • Изменение метода execute для возврата логического значения: true при взятии фигуры или ходе пешки. • Проверка конечной позиции для определения взятия фигуры. 02:33 Обновление методов для различных ходов • Рокировка возвращает false, так как пешка не ходит и фигура не берётся. • Превращение пешки, двойной ход пешкой и ход на процент всегда возвращают true. 03:56 Добавление переменной-счётчика в класс состояния игры • Введение переменной no capture or pawn moves, изначально равной нулю. • Проверка хода в методе make move: обнуление счётчика при взятии или ходе пешкой, увеличение при обычном ходе. 05:04 Реализация метода fifty move rule • Проверка количества полных ходов без взятия или хода пешкой. • Деление счётчика на два для учёта ходов обоих игроков. • Возвращение true, если таких ходов было 50 подряд. 05:49 Добавление правила в метод проверки завершения игры • Если правило 50 ходов возвращает true, устанавливается результат как ничья с указанием причины — правило 50 ходов. 06:22 Заключение • Игра заканчивается ничьей, если длится слишком долго без прогресса. • В меню завершения игры будет указано, что это произошло из-за правила 50 ходов. • Анонс следующей части: реализация правила троекратного повторения позиции.
00:00 Введение в правило 50 ходов • Объяснение правила: ничья объявляется, если в течение 50 ходов подряд не было взятия фигуры и хода пешки. • Идея реализации: добавление переменной-счётчика для отслеживания последовательных ходов без взятий и ходов пешек. 00:31 Принцип работы счётчика • При взятии фигуры или ходе пешки счётчик сбрасывается до нуля. • В остальных случаях счётчик увеличивается. 01:22 Реализация в базовом классе хода • Изменение метода execute для возврата логического значения: true при взятии фигуры или ходе пешки. • Проверка конечной позиции для определения взятия фигуры. 02:33 Обновление методов для различных ходов • Рокировка возвращает false, так как пешка не ходит и фигура не берётся. • Превращение пешки, двойной ход пешкой и ход на процент всегда возвращают true. 03:56 Добавление переменной-счётчика в класс состояния игры • Введение переменной no capture or pawn moves, изначально равной нулю. • Проверка хода в методе make move: обнуление счётчика при взятии или ходе пешкой, увеличение при обычном ходе. 05:04 Реализация метода fifty move rule • Проверка количества полных ходов без взятия или хода пешкой. • Деление счётчика на два для учёта ходов обоих игроков. • Возвращение true, если таких ходов было 50 подряд. 05:49 Добавление правила в метод проверки завершения игры • Если правило 50 ходов возвращает true, устанавливается результат как ничья с указанием причины — правило 50 ходов. 06:22 Заключение • Игра заканчивается ничьей, если длится слишком долго без прогресса. • В меню завершения игры будет указано, что это произошло из-за правила 50 ходов. • Анонс следующей части: реализация правила троекратного повторения позиции.




