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

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

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

МикроШахматы / Взятие на проходе шустрых пешек

  • На этом уроке мы реализуем алгоритм взятия на проходе.
    Для этого мы доработаем ранее созданную заглушку is_pawn_passant().
    Добавим вспомогательные переменные для хранения координат
    возможного взятия на проходе, они нам пригодится на следующем уроке.
  • Дата отправки отчёта: 22 января 2017 г.
  • Задание выполнено: за 59 мин.
  • Чему научился: Дoрaбатывать функцию is_pawn_passant().
  • Что было сложным: ене было сложностей
  • Комментарии: Из приведенного скриншота видно, что алгоритм явно не дороботан.
    Ниже предлагается мой варант алгоритма для белых:

    Если пешка не стоит на 4-горизонтали то возвращаем false.
    Если последний ход соперника был сделан не пешкой то возвращаем false.
    Если ход соперника был сделан не с 6-горизонтали на 4-ю? то возвращаем false.
    Если пешка соперника не на соседней соседней вертикали  то возвращаем false.
    при овсобождении своей пешки открывается шах своему королю то возвращаем false.
    иначе возвращаем true.
  • Оценка видео-уроку:
Отчёт от 11589 за МикроШахматы / Взятие на проходе шустрых пешек




Оцени работу

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

8275. --
Tekashnik
Tekashnik
ответить
→  Yefim  # МикроШахматы / Взятие на проходе шустрых пешек / 2017-01-22 19:14

Хороший псевдо алгоритм


10558. --
Иван Воронин
Иван Воронин
ответить
→  Yefim  # МикроШахматы / Взятие на проходе шустрых пешек / 2017-01-23 02:07

Молодец, никто не мешает делать свои доработки, это только приветствуется =)


10494. --
Алексей В.
Алексей В.
ответить


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





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

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

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

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


Научился: pawn_attack_x && pawn_attack_y предположительно должны устанавливаться для каждой пешки, которая предприняла ход на две клетки Только в этом случае актуально взятие на проходе и в случае хода на две клетки целесообразно отслеживать, а не вздумает ли кто срубить пешечку en passant



Научился: Прорабатывали "взятие на проходе". Думаю, ещё нужно прописать в необходимых условиях соответствующие действия "Тёмной Стороны" ))) Мы можем бить поле, через которое перескочила пешка противника. Т.к. это может быть только на одной линии, то и в условиях можно указать эту линию "-1" для стартовой позиции хода пешки, т.е. в нашем случае (с белыми): "4". Т.к. пешка идёт по диагонали, то и смещение по иксу должно быть на единицу. "Поле атаки" по иксу всегда "5" (шестая линия в массиве), а по игреку совпадает с "dy" атакуемой вражеской пешки.