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

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

Теория ООП / Интерфейс. VIP. Квадратики тоже хотят играть.

  • На этом уроке мы создадим новый класс Box.
    Квадратики тоже хотят играть в эту игру,
    и просят их научить. Пока они ещё не умеют
    ловить, но уже смогут отображаться и передвигаться.

    Полезные ссылки для написания функции Поймал:
    http://xdan.ru/how-to-check-intersect-two-rectangles.html
    http://stackoverflow.com/questions/306316/determine-if-two-rectangles-overlap-each-other
  • Дата отправки отчёта: 30 марта 2016 г.
  • Задание выполнено: за 4 час. 10 мин.
  • Чему научился: Повторил применение интерфейсов.
  • Что было сложным: Реализовать функцию пересечения прямоугольников.
  • Комментарии: Данный урок выполнил в Linux Mint с использованием Qt. Я давно интересовался Linux, неделю назад установил себе на компьютер и теперь осваиваю работу в этой ОС. Вчера получил письмо от Евгения Витольдовича с предложением закончить курс ООП, Согласился, продлил курс, но решил выполнить задание с использованием C++ Qt. Программу писал с нуля, по памяти и это большой плюс для меня, так как в завершении совершенно другими глазами смотрел на код Евгения Витольдовича и оценивал как он решал те или иные архитектурные задачи. В целом, функционально код во многом совпал, но структурно были отличия, позже корректировал с учетом решения в видеоуроке. В конце урока было предложено реализовать функцию пересечения прямоугольников, это было сделано, на скриншотах результаты игры GameVirused с "боксиками".

    P.S. Евгений Витольдович, я хочу продолжить обучение с использованием своих инструментов разработки, Вы это одобряете? То есть, функционально я буду выполнять требования из видеоуроков, получать навыки программирования, но с помощью C++.
  • Оценка видео-уроку:
Отчёт от 7276 за Теория ООП / Интерфейс. VIP. Квадратики тоже хотят играть.


Отчёт от 7276 за Теория ООП / Интерфейс. VIP. Квадратики тоже хотят играть.




Оцени работу

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


24. Олюшка
Олюшка
ответить
→  Ильшат  # Теория ООП / Интерфейс. VIP. Квадратики тоже хотят играть. / 2016-03-31 15:26

Ильшат, это Гениально, твоя система подхода в обучении вдохновляет и мотивирует! Спасибо тебе! :)


7276. Ильшат
Ильшат
ответить
→  Евгений Волосатов  # Теория ООП / Интерфейс. VIP. Квадратики тоже хотят играть. / 2016-03-30 20:53

Спасибо, Евгений Витольдович, интересно Вы придумали с рассылкой, думаю многие откликнутся :)


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Ильшат  # Теория ООП / Интерфейс. VIP. Квадратики тоже хотят играть. / 2016-03-30 17:59

Ильшат, я просто в восторге от такой проработки материала.
Конечно я одобряю такой подход, это самый эффективный
способ прокачивания навыков - писать всё с использованием
других технологий. Ильшат, ты МОЛОДЕЦ!

Не зря я, значит, до трёх часов ночи сидел - письма всем рассылал. :)



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




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

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

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

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


Научился: Добавлять новый класс с интерфейсом.
Трудности: Найти ошибку в строке foreach (Box obj in game.gamers) arena.Show(box);
Как то странно конструкторы сделаны. Нафига так? public Box(int sx, int sy) : this(x, y, w, h) { this.sx = sx; this.sy = sy; } public Box(int x, int y, int w, int h, int sx, int sy) { box = new Rectangle(x, y, w, h); color = Color.Green; } По моему логичнее было бы public Box(int sx, int sy) : this(x, y, w, h) { this.sx = sx; this.sy = sy; } public Box(int x, int y, int w, int h) { box = new Rectangle(x, y, w, h); color = Color.Green; }


Научился: Реализовал добавление игроков поочерёдно, при клике на кнопку, добавляется вначале кружок, потом квадратик и так далее. Реализовал независимую игру кружкой и квадратиков, т.е. кружки ловят кружки, а квадратики ловят квадратики, но если играют кружки, квадратики не мешаются, стоят на месте и наоборот. Оставил реализацию ловли квадратиков кружками и наоборот на след урок, чтобы было чем там заняться =) з.ы. по ссылка и правда ошибочные примеры, я ранее уже реализовывал подобное, когда занимался серверами Terraria (когда занимался разработкой системы межей для строительства). По поводу класса Box, реализовал его по своему, по аналогии с Circle, там Rectangle незачем, так как экземпляр объекта Circle создаётся в функции Show(), то и логичнее так же создавать экземпляр Rectangle(), передавая аналогичным образом Point() и Size() для симметрии кода игроков.