На этом уроке мы унаследуем кружок от интерфейса Игрок. Теперь для запуска программы нам придётся реализовать методы из его интерфейса. В этом уроке мы реализуем методы Голя() и НеГоля().
Дата отправки отчёта:
4 ноября 2015 г.
Задание выполнено: за
20 мин.
Чему научился:
Закрепил навыки.
Что было сложным:
Описать словами содержимое методов Беги(), Поймал().
Комментарии:
Метод Беги(). Наш круг описывается координатами центра 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;
Научился: Реализованы методы поведения объектов Circle, наследуемые от интерфейса Игрок - Голя() и НеГоля(). Трудности: Сложностей не возникло. В очередной раз восхищена Вашим умением, Евгений Витольдович, находить яркие метафоры, позволяющие так просто познавать сложное :) Спасибо Вам!
Трудности: Разбираюсь, изучаю. Описaть cлoвами coдержимoе мeтодов Беги() и Поймал().
Если площадь красного шарика не перекрывает (хотя бы частично) площадь синего , то Беги, иначе Голя.