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

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

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

  • На этом уроке мы унаследуем кружок от интерфейса Игрок.
    Теперь для запуска программы нам придётся реализовать
    методы из его интерфейса.
    В этом уроке мы реализуем методы Голя() и НеГоля().
  • Дата отправки отчёта: 19 ноября 2015 г.
  • Задание выполнено: за 15 мин.
  • Чему научился: Наследие от интерфейса
  • Что было сложным: ничего
  • Комментарии: Метод Run() будет увеличивать (уменьшать) координаты в зависимости от расположения Голи.
  • Оценка видео-уроку:
Отчёт от 6919 за Теория ООП / Интерфейс. Кружок хочет играть.




Оцени работу

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

24. Олюшка
Олюшка
ответить
→  Anton Sozykin  # Теория ООП / Интерфейс. Кружок хочет играть. / 2015-11-19 22:42

Антон, рада что ты продолжаешь заниматься, и из этого урока приобрел отличный опыт! Молодец! :)


  • Отчёт оценивали:
    6391Владимир+1   6925Артём+1   6203Николай (nick27m)+1   7308AZANIR+1   1Евгений Волосатов+1   7440homerSimpson0   5705Андрей +1   7901Влад+1   24Олюшка+1   429Максим Базуев+1   5760Мариша +1   6987MichGar+1   2146Иван+1   6452Кирилл Шмойлов+1   791Валерий Жданов+1   7645Александр Львович+1   5419Роман+1   6458Илья+1   3747Сергей+1   6080annaka+1   4004Елена+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Трудности: Описать словами содержимое методов Беги(), Поймал().
Метод Беги(). Наш круг описывается координатами центра center (Point) и радиусом(int). В конце урока была дана подсказка, две целочисленные переменные sx, sy. Эти переменные могут означать смещение координат центра. Могут означать изменение радиуса. Но мы должны реализовать не метод Расширься(), а метод Беги(), то есть изменение координат самого круга, а это определяется координатами центра. Так что, думаю что надо в методе Беги() изменить координаты центра: center = new Point(center.x + sx, center.y + sy); В методе Поймал(object obj) нам надо проверить поймал ли текущий кружок this того, что мы получили в аргументах. Физическая реализация этого представляется проверкой на столкновение или, точнее, пересечение двух окружностей (Так как у нас объекты круги). Пересечение двух окружностей это не rocket science, решение известно - это определение дистанции между центрами окружностей и сравнение этого значения с суммой радиусов. Если дистанция меньше суммы, то ... кружок поймал другой кружок. public bool Catch(object obj) { Circle second_circle = (Circle)obj; int distance = Convert.ToInt16(Math.Sqrt( (center.X - second_circle.center.X) * (center.X - second_circle.center.X) + (center.Y - second_circle.center.Y) * (center.Y - second_circle.center.Y))); return distance < radius + second_circle.radius; }
в Беги() К координатам центра кружочка прибавлять (отнимать) sx и sy. Проверять столкновения со стенками Area и менять знак у sx или sy если столкновение случилось. в Поймал() Проверять пересечение голи и передаваемого объекта. В случае с кружочками можно сравнивать расстояние от центра голи до центра передаваемого объекта с суммой радиусов голи и передаваемого объекта.