Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы реализуем выполнение ходов.
Дата отправки отчёта:
20 июня 2019 г.
Задание выполнено: за
7 час. 39 мин.
Чему научился:
Словил себя на мысли о том, что не могу описать полностью всё, чему научился/ознакомился/попробовал/освоил :) т.к. - неизбежно что-то будет упущено - полезного много. Практикуюсь постоянно, но пока есть ощущение, что хотелось бы бОльшей свободы в той части создания программ, где мысль, план преобразуется непосредственно в методы и код. Конкретно на этом уроке - обратил внимание на тот факт, что EF нужно указать перед сохранением записи в БД, что она была модифицирована. Интересно было так же наблюдать за чисткой лишних using-ов :) действо напоминает приборку в любимом доме.
в методе Logic.cs --> MakeMove() есть очень удобное место:
if (chess.IsCheckmate || chess.IsStalemate) { game.Status = "done"; // здесь можно поместить экземпляр делегата, // который будет вызывать сообщающий метод }
Что было сложным:
*Интересно, есть ли способ менять поле ID таблицы Games в БД из программы?
Курс не проходил. Но есть мысли по поводу ID. Почему-то кажется, что id в этой таблице имеет свойство autoincrement. Соответсвенно, возникает вопрос - а зачем его менять. Тем более, что это поле, как правило, должно быть уникальным
Научился: У меня не подсвечивает метод chess.IsValidMove().
Из "Is.." есть только шах/мат/пат.
Пересмотрел листинги - отсутствует.
В каком уроке мы его делали?
Научился: Написали функции GetMoves и MakeMove для реализации хода. Внесли изменения в WebApiConfig. Трудности: Сложно помнить обо всех ранее реализованных функциях и взаимосвязях между ними.