#16 Программирование шахмат на C# - Недостаточно фигур
00:00 Введение • Обсуждение сценариев, при которых ни у одного из игроков не остаётся фигур для мата. • Пример: если у обоих игроков остался только король, игра никогда не закончится. • Решение: игра должна завершиться ничьей из-за недостаточного количества фигур. 01:01 Создание класса Counting • Класс Counting хранит информацию о количестве фигур каждого типа у обоих игроков. • Добавляются словари для белых и чёрных фигур. • Ключ словаря — тип фигуры, значение — количество фигур этого типа. • Также добавляется свойство для общего количества фигур на доске. 02:04 Конструктор и метод increment • В конструкторе добавляются записи для каждого типа фигур в оба словаря. • Метод increment увеличивает количество фигур соответствующего типа в зависимости от цвета. • Увеличивается общее количество фигур. 03:42 Методы white и black • Метод white возвращает количество белых фигур определённого типа. • Метод black возвращает количество чёрных фигур определённого типа. 04:43 Метод count pieces • Метод count pieces возвращает количество всех активных фигур на доске. • Создаётся новый счётчик и проходится по всем занятым позициям на доске. • Для каждой позиции увеличивается счётчик для цвета и типа фигуры. 05:54 Метод insufficient material • Метод insufficient material возвращает true, если оставшихся фигур недостаточно для мата. • Проверяются различные сценарии: только короли, король и слон против короля, король и конь против короля, король и слон против короля и слона. • Для проверки сценариев используются вспомогательные методы. 13:08 Проверка на окончание игры • В классе состояния игры проверяется, достаточно ли оставшихся фигур для мата после каждого хода. • Если нет, устанавливается результат как ничья с причиной «недостаток материала». 14:00 Тестирование и заключение • Тестирование сценариев «король против короля», «король против короля и слона», «король против короля и коня», «король и слон против короля и слона». • Обсуждение «мёртвых» позиций, когда ни один из игроков не может поставить мат. • Анонс следующего видео о добавлении нового правила для ничьей в таких партиях.
00:00 Введение • Обсуждение сценариев, при которых ни у одного из игроков не остаётся фигур для мата. • Пример: если у обоих игроков остался только король, игра никогда не закончится. • Решение: игра должна завершиться ничьей из-за недостаточного количества фигур. 01:01 Создание класса Counting • Класс Counting хранит информацию о количестве фигур каждого типа у обоих игроков. • Добавляются словари для белых и чёрных фигур. • Ключ словаря — тип фигуры, значение — количество фигур этого типа. • Также добавляется свойство для общего количества фигур на доске. 02:04 Конструктор и метод increment • В конструкторе добавляются записи для каждого типа фигур в оба словаря. • Метод increment увеличивает количество фигур соответствующего типа в зависимости от цвета. • Увеличивается общее количество фигур. 03:42 Методы white и black • Метод white возвращает количество белых фигур определённого типа. • Метод black возвращает количество чёрных фигур определённого типа. 04:43 Метод count pieces • Метод count pieces возвращает количество всех активных фигур на доске. • Создаётся новый счётчик и проходится по всем занятым позициям на доске. • Для каждой позиции увеличивается счётчик для цвета и типа фигуры. 05:54 Метод insufficient material • Метод insufficient material возвращает true, если оставшихся фигур недостаточно для мата. • Проверяются различные сценарии: только короли, король и слон против короля, король и конь против короля, король и слон против короля и слона. • Для проверки сценариев используются вспомогательные методы. 13:08 Проверка на окончание игры • В классе состояния игры проверяется, достаточно ли оставшихся фигур для мата после каждого хода. • Если нет, устанавливается результат как ничья с причиной «недостаток материала». 14:00 Тестирование и заключение • Тестирование сценариев «король против короля», «король против короля и слона», «король против короля и коня», «король и слон против короля и слона». • Обсуждение «мёртвых» позиций, когда ни один из игроков не может поставить мат. • Анонс следующего видео о добавлении нового правила для ничьей в таких партиях.




