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

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

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

МикроШахматы / Случайный шах

  • На этом уроке мы реализуем функцию is_check(),
    чтобы король не ходил на клетку, которая под боем.

    На время теста вы уберём все пешки и добавим функцию is_check()
    с генерируемой случайностью шаха для всех фигур на поле.
  • Дата отправки отчёта: 14 октября 2018 г.
  • Задание выполнено: за 28 мин.
  • Чему научился: * Почему не все ходы доступны - из за (великого корейского) рандома пятая часть ходов не доступна случайным образом. Просто, при вызове функции "ис чек", только четыре из пяти ответов положительны.

    Насчёт проверки:  проверяем (и запоминаем), где стоит король. Затем, проверяем, может ли какая-либо фигура соперника походить на эту клетку. Если да - сигналим, что щаз будет шах.
    Проверка выполняется не только после хода (в отношении вражеского короля) но и перед ходом, когда фигура уже выбрана, и нужно понять, поставим ли мы своего короля под угрозу, переместив её (фигуру).
  • Что было сложным: Всё ок.
  • Оценка видео-уроку:
Отчёт от 4210 за МикроШахматы / Случайный шах




Оцени работу

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

20220. --
Pox
Pox
ответить
→  Дмитрий  # МикроШахматы / Случайный шах / 2018-10-14 11:42

Молодец  Дмитрий, я думаю у тебя все получится... Желаю успехов при прохождении следучших уроков...


  • Отчёт оценивали:
    17947Dmitry Sinitsin+1   17542Никита+1   16861Serge+1   20062Руслан+1   11353AlliZzeN+1   17606Виктор+1   11589Yefim+1   20220Pox0   16396Денис+1   3922Александр+1   19525Александр Балбашов+1   18493Evgenii Kudriavtcev+1   6452Кирилл Шмойлов+1   8275Tekashnik+1   16218Дмитрий+1   3747Сергей+1  

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





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

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

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

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


Научился: Делать случайный шах
В нашем коде не все ходы боступны на как метод can_move возвращает через проверку is_check() с помощью функции random


Научился: Доработана функция can_move() Добавлена функция is_check()
Трудности: Не все ходы доступны, так как после условно недоступного хода был бы условный шах королю ходившей стороны. Мой алгоритм функции is_check() : условно допустить сделанный ход, найти координату короля ходившей стороны (она могла поменяться, но не обязательно), проверить. может ли фигура соперника (Q R B N) пойти на координату с твоим королем, ИЛИ проверить, может ли пешка соперника побить наискосок координату с твоим королем. Если оба вопроса ложь, то возвращаем ложь, шаха нет. Если же координата под боем, возвращаем истину, нашему королю шах.