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

Формула программиста
основатель — Волосатов Евгений Витольдович

Теория ООП / Интерфейс. VIP. Пересечение прямоугольников.

  • На этом уроке мы допишем метод Box.Поймал()
    и запустим игру с квадратиками.
    Потом попробуем подружить квадратики с кружками,
    увидим, что это не так просто, да собственно и не нужно.
    Но возможно.
  • Дата отправки отчёта: 12 мая 2016 г.
  • Задание выполнено: за 1 час. 00 мин.
  • Чему научился: 1. Допиcaть мeтод Box.Поймал()
      2. Сделaть мeтoд Arena.Show (Box box).
      3. Сделaть дoбaвление в игру и крyжков и квaдpатиков.
      4. Сделaть мeтoд Arena.Show (Игрок obj).
  • Что было сложным: Ничего
  • Комментарии: Все понятно
  • Оценка видео-уроку:
Отчёт от 6670 за Теория ООП / Интерфейс. VIP. Пересечение прямоугольников.


Отчёт от 6670 за Теория ООП / Интерфейс. VIP. Пересечение прямоугольников.




Оцени работу

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

24. Оля
Оля
ответить
→  Николай  # Теория ООП / Интерфейс. VIP. Пересечение прямоугольников. / 2016-05-12 22:41

Николай, Отлично что все получилось у тебя! Рада что ты уже на финишной прямой этого курса! :)


  • Отчёт оценивали:
    3506Алексей|BrisK|Кривицкий+1   4992Николай+1   4467Alcatraz+1   7119Новопашин Владимир+1   1Евгений Волосатов+1   7645Александр Львович+1   4732Sergey+1   8835Булат+1   24Оля+1   6452Кирилл Шмойлов+1   1537Сергей+1   9286Petuško Julija+1   9971Юрий+1   4395Денис+1   9366Sman Diana+1   9367Loginova Veronika+1   9290Dedeiko Eduard+1   9372Vojevodina Ksenija+1   9291Varkus Maksim+1   9281Dubakaitė Violeta+1  

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




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.
Трудности: Понимать, что тип Игрок имеет потомков (хотя и Игрок это интерфейс) в виде кружков и квадратиков
Пересечение кружков и квадратиков по всей видимости надо будет делать в универсальной функции, определяющей тип игрока
Научился: Условие пересечения прямоугольников.
Трудности: Сложностей не было.
Поначалу решил, что предложенная в уроке функция проверки пересечения двух прямоугольников рассматривает только один частный случай, слишком уж "простая" она на вид. Однако проверил на практике - работает. Здесь я предположил, что боксики двигаются слишком быстро, поэтому в какой-то момент срабатывает "то самое" частное условие и боксик голится. Я не верил, что это решение корректное. Для полной проверки нужно было замедлять боксики и проверять на глаз пересечения, но мне не хотелось этим заниматься. Я уже хотел было отправить отчет, но тут вспомнил совет Евгения Витольдовича, что следует довести дело до конца. Тут осенило, думаю, дай-ка создам unit-тесты на функцию isIntersect и проверю все возможные варианты пересечений и не пересечений. В итоге, нарисовал на бумаге разные варианты расположения прямоугольников, получалась 31 комбинация, создал для каждой из них свой тест, каждый тест запускал по мере написания и меня каждый раз шокировало, что функция-то работает:D На втором скриншоте показаны результаты выполнения 31 теста, все проходят. Подумал, может в Qt какая-нибудь бага, регрессировал код тестируемой функции, добавил в нее ошибку и тесты посыпались как надо, чудо. В общем, функция Евгения Витольдовича работает как надо. Позже я еще раз логически проанализировал функцию проверки и да, тут уже понял, что код корректен. Первое впечатление оказалось обманчивым, следует внимательно читать код. Хороший урок для меня.