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

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

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

Шахматы по сети / Классы. Стой, кто идёт!

  • Мы продолжаем создание шахматных классов на языке C#,
    которые позволят проверять правила игры.
    На этом уроке мы создадим класс Moves(),
    который будет заниматься проверкой возможности хода.
  • Дата отправки отчёта: 25 марта 2018 г.
  • Задание выполнено: за 2 час. 7 мин.
  • Чему научился: Создали новый класс Moves, добавили булевую функцию CanMove (может ли ходить эта фигура) с 2 подфункциями (CanMoveFrom - "с клетки" и CanMoveTo - "на клетку"), а также добавили статический класс FigureMethods, определяющий цвет фигуры.
  • Что было сложным: Не удалось найти ошибку в классе Moves, но не очень нравится строка fm.figure.GetColor() != board.moveColor. Возможно, недостаточно определить то, что цвет фигуры на клетке, с которой ходим, должен не совпадать с цветом клетки, на которую ходим.
    Возможно, нужно отдельно проверять на клетке, куда идем, пустую клетку и чужую фигуру.
    Побродил между классами Board, Color, FigureMethods и Moves и их функциями определения цвета фигуры и заблудился.  Открыл функцию "Can_move_to" на "Микрошахматах", но там проверка реализована иначе. Но в них идут отдельные проверки на пустую клетку и на различие значений функций get_color и move_color.
  • Оценка видео-уроку:
Отчёт от 4814 за Шахматы по сети / Классы. Стой, кто идёт!




Оцени работу

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

17093. --
jin
jin
ответить
→  Дмитрий  # Шахматы по сети / Классы. Стой, кто идёт! / 2018-03-25 22:49

Я не в курсе данного кода. В логике нужно смотреть. Шаг игрока (смена позиции фигуры) состоит из чего: 1) выбор фигуры (тут же наверное и реализуется выбор цвета и сама фигура), 2) установить возможные варианты перемещения для данной фигуры (тут же проверка выход за границы игрового поля/массива), 3) а потом выбор действий при условии пустая/занятая клетка (союзная фигурв или нет тоже по цвету определить вариант действий и варианты действий)

При цвете можно использовать тернарный оператор для определения белые/черные и определения последующих действий.  Не уверен, что мой комментарий поможет, но может хоть подтолкнет в верное направление (хотя варианты реализации могут быть различными и представлятся для каждого по разному).


4814. --
Дмитрий
Дмитрий
ответить
→  jin  # Шахматы по сети / Классы. Стой, кто идёт! / 2018-03-25 23:16

Это не моя ошибка. :-) Это ошибка, допущенная в коде курса и исправленная через пару уроков. Задача курсантов - попробовать увидеть ее сейчас.


  • Отчёт оценивали:
    Посетитель+1   4814Дмитрий+1   6452Кирилл Шмойлов+1   16218Дмитрий+1   17443WildOrc+1   10494Алексей В.+1   5649Максим Лапшинов+1   791Валерий Жданов+1   1710Степан+1   1Евгений Волосатов+1   17093jin+1   11582Родион+1   5081Михаил+1   459Сергей Сергеевич+1   10558Иван Воронин+1   13417Chip+1   16066Bodrik_torf+1   9980Timoha+1   9156Dimon+1   16880Константин+1   3922Александр+1   4395Денис+1  

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





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

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

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

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


Научился: Еще раз вспомнила про метода расширения, поняла принцип проверок. Ошибка же при движении на точку - не цвет доски нужно сравнивать, а цвет фигуры в этом месте на доске, верно?



Научился: 1.Create class Moves Question: Why this class is plural? 2.Create functions CanMoveFrom(), CanMoveTo() 3.Create extension class FigureMethods: again plural? 4.Create method GetColor() 5.Error? -> CanMoveFrom()???, CanMoveTo()??? Not working properly