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

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

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

МикроШахматы / Шахматная бюрократия

  • На этом уроке мы создадим функцию, которая будет проверять,
    может ли фигура сходить так, как её попросят - то есть
    реализовать алгоритмы передвижения для каждой фигуры
  • Дата отправки отчёта: 10 августа 2018 г.
  • Задание выполнено: за 3 дня 17 мин.
  • Чему научился: Созданы функции can_move() и is_correct_move().
    Модифицирована mark_moves_from
  • Что было сложным: Что должно быть в алгоритме is_correct_move
    Приоритетная проверка - если после хода, нашему королю остается шах, ход невозможен. Возможно, другой функцией проверять?
    В самом конце, если после любого хода шах остается, проверяем , а шах ли нам до хода, если нет, то это пат, зовем судью и фиксируем ничью, если шах есть,  то нам мат, сдаемся, расходимся.
    Определяем какой фигурой ходим.
    Затем проверки для каждой фигуры:
    Король. До восьми клеток вокруг - своих пропускаем, врага съедаем, доп проверка на  возможность рокировок.
    Ладья, проверяем горизонталь и вертикаль, до встречи со своими или с врагом, своих отбрасываем, врага бьем. Проверяем рокировку.
    Слон то же что и ладья, но диагонали вместо горизонталей и вертикалей, и не нужна проверка рокировок.
    Ферзь - это слон, стоящий на ладье,  но не нужна проверка рокировок.
    Конь, проверка до 8 полей по букве Гэ.
    Пешка - три поля: вверх, если там пусто, вверх влево, если там враг, вверх вправо, если там враг. Если в начальной позиции, и впереди 2 пустых поля, то вперед на 2.
    И проверка взятия на проходе.

  • Оценка видео-уроку:
Отчёт от 18783 за МикроШахматы / Шахматная бюрократия




Оцени работу

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

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Andrew  # МикроШахматы / Шахматная бюрократия / 2018-08-11 16:41

Мне кажется ты слегка усложняешь :-)


18493. --
Evgenii Kudriavtcev
Evgenii Kudriavtcev
ответить
→  Andrew  # МикроШахматы / Шахматная бюрократия / 2018-08-11 23:08

Прочитал я это все, и мысли уже потерялись в середине...
Про шах, мат и пат - там по правилам, если шах - то нужно отойти/закрыться или срубить фигуру, которая шахует. Зачем проверять, остался шах после предыдущего хода или нет?
Про пат - тут если король не может сходить, то это еще не пат, есть другие фигуры. Или опять очень сложное предложение и не так понял...


18783. --
Andrew
Andrew
ответить
→  Evgenii Kudriavtcev  # МикроШахматы / Шахматная бюрократия / 2018-08-11 23:42

Проверка шаха, это, в том числе, случаи, когда шаха не было, а пошла связанная фигура. Фигура может идти по своему правилу, но проверка шаха этот ход отбросит.
Слово "остается" не нравится? Ну может быть, не остается, а "есть".
Отойти, закрыться, срубить - это ничего не требуется делать, всего лишь проверка после хода, а есть ли теперь шах. Если есть, ход отброшен.
Пат - та же логика, все ходы перебраны(не только короля), шах после всех, тогда если шаха не было, то пат.


  • Отчёт оценивали:
    17947Dmitry Sinitsin+1   3922Александр+1   16218Дмитрий+1   791Валерий Жданов+1   19525Александр Балбашов+1   9014Николай Денисов+1   17606Виктор+1   7645Александр Львович+1   6452Кирилл Шмойлов+1   1Евгений Волосатов+1   459Сергей Сергеевич+1   18493Evgenii Kudriavtcev+1   9752chokayes+1   7652Петя+1   6203Николай Миролюбов+1   17255Слава+1  

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





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

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

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

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


Научился: Научился писать функции проверки хода
Трудности: Не запутаться в циклах, потом понял всё
Идём дальше, уже с нетерпением ожидаю реализовать алгоритмы)


Научился: Добавил функцию can_move, которая проверяет возможен ли ход из одной клетки в другую. Сделал заглушку для функции is_correct_move, которая проверяет корректность хода по шахматным правилам.