#09 Программирование шахмат на C# - Мат и безвыходное положение

00:00 Введение в обработку окончания игры • Объяснение, что в этой части будет заложена основа для обработки ситуации, когда игра окончена. • Определение мата: игрок находится под шахом и не может сделать ни одного хода, чтобы выйти из-под шаха. • Пример мата: белому слону угрожает чёрный король, и ни один ход не может вывести чёрного короля из-под шаха. 00:32 Определение пата • Пат: игрок не может сделать ни одного хода, не оказавшись под шахом. • Пример пата: белый король не находится под шахом, но у него нет допустимых ходов. • Такая ситуация приводит к ничьей. 01:02 Создание перечисления intReason • Добавление перечисления intReason для определения причин окончания игры. • Возможные причины: мат или пат. • Упоминание о будущих причинах: правило 50 ходов, недостаточный материал, троекратное повторение. 02:19 Создание класса Result • Класс Result содержит выигравшего игрока или player.none в случае ничьей, а также причину окончания игры. • Конструктор принимает эти значения и сохраняет их. • Создание методов для создания результата: один для победы, другой для ничьей. 04:26 Добавление эндшпиля • Добавление свойства result для сохранения фактического результата игры. • Метод для генерации всех возможных ходов текущего игрока. • Фильтрация недопустимых ходов для определения допустимых. 06:38 Метод check for game over • Метод вызывается в конце каждого хода после смены текущего игрока. • Если у нового игрока нет допустимых ходов, игра окончена. • Определение мата: текущий игрок находится под шахом. • Определение пата: текущий игрок не находится под шахом. 08:21 Метод Is game over? • Игра окончена, если задано значение result. • Возвращение true, если result не равен null. 08:50 Тестирование • Установка точек останова для случаев мата и пата. • Запуск игры в режиме отладки. • Проверка работы метода на примерах мата и пата. 09:51 Заключение • Следующий шаг: создание пользовательского интерфейса для отображения информации по окончании игры. • Анонс следующей части: работа над меню завершения игры.

Иконка канала Ленинский Букварь
249 подписчиков
12+
2 просмотра
4 дня назад
12+
2 просмотра
4 дня назад

00:00 Введение в обработку окончания игры • Объяснение, что в этой части будет заложена основа для обработки ситуации, когда игра окончена. • Определение мата: игрок находится под шахом и не может сделать ни одного хода, чтобы выйти из-под шаха. • Пример мата: белому слону угрожает чёрный король, и ни один ход не может вывести чёрного короля из-под шаха. 00:32 Определение пата • Пат: игрок не может сделать ни одного хода, не оказавшись под шахом. • Пример пата: белый король не находится под шахом, но у него нет допустимых ходов. • Такая ситуация приводит к ничьей. 01:02 Создание перечисления intReason • Добавление перечисления intReason для определения причин окончания игры. • Возможные причины: мат или пат. • Упоминание о будущих причинах: правило 50 ходов, недостаточный материал, троекратное повторение. 02:19 Создание класса Result • Класс Result содержит выигравшего игрока или player.none в случае ничьей, а также причину окончания игры. • Конструктор принимает эти значения и сохраняет их. • Создание методов для создания результата: один для победы, другой для ничьей. 04:26 Добавление эндшпиля • Добавление свойства result для сохранения фактического результата игры. • Метод для генерации всех возможных ходов текущего игрока. • Фильтрация недопустимых ходов для определения допустимых. 06:38 Метод check for game over • Метод вызывается в конце каждого хода после смены текущего игрока. • Если у нового игрока нет допустимых ходов, игра окончена. • Определение мата: текущий игрок находится под шахом. • Определение пата: текущий игрок не находится под шахом. 08:21 Метод Is game over? • Игра окончена, если задано значение result. • Возвращение true, если result не равен null. 08:50 Тестирование • Установка точек останова для случаев мата и пата. • Запуск игры в режиме отладки. • Проверка работы метода на примерах мата и пата. 09:51 Заключение • Следующий шаг: создание пользовательского интерфейса для отображения информации по окончании игры. • Анонс следующей части: работа над меню завершения игры.

, чтобы оставлять комментарии