Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Шахматы по сети / Алгоритмы. ТРЕТИЙ ФИНАЛЬНЫЙ УРОК

  • На этом уроке мы исправим одну ошибку и добавим ещё один вариант метода GetFigureAt(string xy).
    Ваше задание - записать подробный отзыв об алгоритмической части проекта.
  • Дата отправки отчёта: 21 июля 2018 г.
  • Задание выполнено: за 2 час. 59 мин.
  • Чему научился: Передавать данные о ходе через FEN, использовать это для расстановки фигур на доске Board. На уроке интересным образом этот FEN распарсили, там же сделали метод Init() простой, удобочитаемый, а значит понятный, тоже понравилось. Научился обратной передачи данных, как упаковать 11111111 в 8ку для генерации FEN. Познакомился с Yield. Знал о нем раньше, но не понимал как работает, разобрался. Создали вспомогательные функции DeltaXY, AbsDeltaXY, SignXY для определения правильности хода фигур. Маленькие, но очень полезные, очень легко с их помощью конструировать ходы для разных фигур. На примере движения короля, реализовал движение коня и угадал с первого раза. Следом реализовали движение дальнобойных фигур Ферзя, Ладьи (Ферзь, ограниченный по диагонали), Слона (Ферзь ограниченный по вертикали/горизонтали) не быстро, они по одной перебирают все клеточки в направлении движения, но мы и не торопимся. Отдельный урок для Пешки, сложно, много но зато теперь все ходят правильно. CanPawnJump(int stepY) можно заранее записать из условия клетку через которую мы прыгаем для "взятия на проходе" if (board.GetFigureAt(new Square( fm.from.x, fm.from.y + stepY)) == Figure.none) в какую-нибудь переменную.  Научился превращать пешку в одну из четырёх фигур: Queen, Knight, Bishop и Rook. Сделали рефакторинг класса Board он стал чем-то вроде геттера, а новый класс nextBoard сеттера. Причем программа не сломалась и продолжала работать, удивительно. Реализовали "взятие на проходе" для пешки и "рокировку" для короля. В уроке "32 Зашита короля" научился делать шаг и пустой ход(это круто, для шага наоборот). На уроке "33 Шах и Мат!" научился проверять состояние игры: есть ли ШАГ, МАТ или ПАТ.  Сделал проверку на НИЧЬЮ. Очень понравилось, крутые интересные алгоритмы, много интересных, оригинальных решей, один обманный ход чего стоит. Теперь в голове все разложено по полочкам (шучу), как на картинке Алисы в зазеркалье у нее были похожие шахматы, картинку прилагаю.
  • Что было сложным: Critical: Не работала функция String.Replace('1', Figure.none) пришлось заменить на собираемую вручную строку из StringBuilder'a. Из-за этого на поле вместо точек были 1ки. Это не было проблемой пока не дошли до реализации хода дальнобойных фигур, они вдур стали короткобойными) Ферзь, Слон, Ладья ходили только на 1 клеточку. Решив проблему с полем из единичек, проблема с ходами отпала сама собой. <br> Minor: Вторая проблема достаточно неприятная, но не смертельная - я добавил в референсы dll'ку (а нужно было добавить солюшн с кодом дллки) из Bin\Debug и долго удивлялся почему мне сначала нужно билдить длл и только потом запускать программу чтоб она работала уже с изменениями, а на всех видео она работала сразу
  • Оценка видео-уроку:
Отчёт от 17535 за Шахматы по сети / Алгоритмы. ТРЕТИЙ ФИНАЛЬНЫЙ УРОК


Отчёт от 17535 за Шахматы по сети / Алгоритмы. ТРЕТИЙ ФИНАЛЬНЫЙ УРОК




Оцени работу

 
Сохранить страницу:

  • Отчёт оценивали:
    Посетитель+1   Посетитель+1   17606Виктор+1   Посетитель+1   17535Алексей+1   2773Никита+1   17947Dmitry Sinitsin+1   3922Александр+1   791Валерий Жданов+1   13850Владимир+1   7645Александр Львович+1   17443WildOrc+1   6452Кирилл Шмойлов+1   7119Новопашин Владимир+1   5394Anton+1   17255Слава+1   459Сергей Сергеевич+1   9014Николай Денисов+1   10494Алексей В.+1   16218Дмитрий+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Отличный курс ! Много чему научил. Было много опечаток, но видимо ошибки учат программированию. Спасибо !



Научился: Отличный курс, все очень понравилось! Видно, что автор очень старался разрабатывая каждый алгоритм. Большое спасибо!