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

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

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

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

    Полезные ссылки для написания функции Поймал:
    http://xdan.ru/how-to-check-intersect-two-rectangles.html
    http://stackoverflow.com/questions/306316/determine-if-two-rectangles-overlap-each-other
  • Дата отправки отчёта: 11 ноября 2015 г.
  • Задание выполнено: за 30 мин.
  • Чему научился: Добавлять новый класс с интерфейсом.
  • Что было сложным: Найти ошибку в строке
                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;
            }
  • Оценка видео-уроку:
Отчёт от 1901 за Теория ООП / Интерфейс. VIP. Квадратики тоже хотят играть.




Оцени работу

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

1901. Neverwinter 2
Neverwinter 2
ответить
→  Евгений Волосатов  # Теория ООП / Интерфейс. VIP. Квадратики тоже хотят играть. / 2015-11-12 16:49

А мой вариант вообще рабочий? Так то я сделаю, но я спрашиваю с теоретической так сказать точки зрения.


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Neverwinter 2  # Теория ООП / Интерфейс. VIP. Квадратики тоже хотят играть. / 2015-11-11 19:13

Сделай так, как считаешь нужным.


  • Отчёт оценивали:
    6080annaka+1   7645Александр Львович+1   Посетитель+1   6203Николай (nick27m)+1   6452Кирилл Шмойлов+1   429Максим Базуев+1   459Сергей Сергеевич+1   4889Валера Луцевич+1   7901Влад+1   6987MichGar+1   7449Elena Karpanova+1   7788Ксения+1   1Евгений Волосатов+1   5407Дмитрий 199+1   6696Владимир Борисенко+1   5868Vera+1   6458Илья+1   4378Александр+1   7795Вадим+1   7573Павел+1   2146Иван+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Еще немного ООП в копилку По Поймал...думаю будет очень похожа на ту что делали прежде. По Distance - если по оси X или по оси Y координаты совпадут то true. Можно от обратного - отнимать координаты и если Distance равен 0 , то поймал. Это просто мысли вслух.
нет замечаний
Научился: Создавать классы на основе интерфейса
Трудности: Реализовать функцию пересечения прямоугольников
public bool Поймал(Игрок that) { if (that.GetType() != typeof(Box)) return false; return GetCross(this, (Box)that); } private bool GetCross(Box b1, Box b2) { if (b1.box.Y < b2.box.Y + b2.box.Height || b1.box.Y + b1.box.Height > b2.box.Y) return false; if (b1.box.X + b2.box.Width < b1.box.X || b1.box.X > b2.box.X + b2.box.Width) return false; return true; }