Мы продолжаем написание шахматных алгоритмов. На этом уроке мы будем защищать короля от ШАХа.
Дата отправки отчёта:
20 июля 2018 г.
Задание выполнено: за
1 час. 14 мин.
Чему научился:
Делать шаг, делать пустой ход - интересное решение, попробуй до такого догадаться сам.. очень круто. На картинке вид со стороны шахмат на наши мутки с FEN'ом.
Что было сложным:
Когда делал конструктор без параметров куда-то пропали параметры из того конструктора который уже был ранее, это очень странно 100% его не трогал, пришлось писать их заново. Мистика.
Отчёт оценивали: Посетитель+1Посетитель+13922. Александр+117947. Dmitry Sinitsin+12773. Никита+1791. Валерий Жданов+113850. Владимир+117606. Виктор+17645. Александр Львович+117443. WildOrc+16452. Кирилл Шмойлов+11. Евгений Волосатов+118493. Evgenii Kudriavtcev+110558. Иван Воронин+12146. Иван+17119. Новопашин Владимир+117255. Слава+1459. Сергей Сергеевич+19014. Николай Денисов+110494. Алексей В.+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: Подготовил FEN для тестирования;
Дописал функцию Chess().YieldValidMoves();
Реализовал функции IsCheckAfterMove(), CanEatKing(), FindBadKing() и IsCheck() в классе Board();
Доработал функцию Moves().CanKingCastle();
Создал конструктор FigureMoving() для пустого хода;
Протестировал работу до мата. Трудности: Ничего. Ждем большого тестирования =)
Научился: Оказалось, что проверка на шах ломает введённое копирование параметров из board в nextBoard, так что пока вернул ресурсоёмкую генерацию всех параметров при пересоздании доски, но позже вернусь к этому вопросу.
Ещё нашёл и исправил ошибку с упущенными скобками, которые не позволяли ладье совершить рокировку. Ничто так не позволяет понять строение проекта, как дебаггинг :)