Изучение c# на примерах

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

Получить доступ

Теория ООП

Практический курс по теории Объектно-ориентированного программирования.
С нуля создаётся проект по рисованию различных геометрических фигур,
которые потом объединяются в спрайты, взаимодействуют друг с другом.

Во время создания проекта постоянно применяется рефакторинг кода,
при этом демонстрируются приёмы Объектно-ориентированного программирования.

Во второй части курса мы проработаем понятие Интерфейса.

Объём: 39 коротких видеоуроков
Время: 7 часов 40 минут.
Доступ на 30 дней.

3000 руб.


Для подписки на пакет необходимо авторизоваться.

Список уроков | фото | видео

# Название видеоурока Решило Рейтинг Доступ
1 Инкапсуляция мечты 00:09:02 100 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 20 мин. [Показать отчёт]
Научился: Инкапсуляция - объединение элементов интерфейса, доступного пользователю и методов, которые выполняет программа. 
Сложности: ---- 
Комментарии: Интересно! 
2 Урок рисования 00:08:10 96 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Повторил методы рисования. 
Сложности: ---- 
Комментарии: Продолжим! 
3 Первый класс 00:09:53 89 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Создал класс Line, создал публичные поля координат и написал конструктор для класс Line. Передела программу для работы с классом Line. 
Сложности: ---- 
Комментарии: Продолжим! 
4 Второй класс 00:09:13 85 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Добавил в программу класс Box, с координатами верхнего левого и нижнего правого углов. Вычисление длины и ширины производиться внутри конструктора класса Box. 
Сложности: ---- 
Комментарии: Продолжим! 
5 Круглый класс 00:08:10 82 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Создал класс Circle. Нарисовал окружность в центре прямоугольника. 
Сложности: ----- 
Комментарии: Продолжим! 
6 Структура пикселя 00:10:55 71 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Узнал как создавать структуры. 
Сложности: Всё понятно. 
Комментарии: Продолжим! 
7 Структура vs Класс 00:25:05 64 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 40 мин. [Показать отчёт]
Научился: На практике увидел различия между Структурой и Классом. 
Сложности: ---- 
Комментарии: Очень познавательно. Спасибо за урок! 
8 Пиксели для классов 00:14:44 61 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Из урока я уяснил, что можно создать класс с множеством конструкторов, но все они могут обращаться к одному единственному конструктору. Т.о. избегается нагромождение классов кодом, повторяющим одно и тоже. 
Сложности: Надо всё это переварить. 
Комментарии: Очень интересно! 
9 Расстояние между пикселями 00:12:12 61 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Научился создавать методы в структуре и использовать их в конструкторе классов. 
Сложности: ---- 
Комментарии: Продолжим! 
10 Цветные карандаши 00:14:54 59 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Повторение пройденного. 
Сложности: ----- 
Комментарии: Продолжим! 
11 Рисуем Снеговика 00:14:40 58 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Повторение пройденного. 
Сложности: ----- 
Комментарии: Продолжим! 
12 Второй Снеговик 00:09:46 57 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Повторение пройденного. 
Сложности: ---- 
Комментарии: 1. Для перемещения необходимо создать событие (нажатие клавиш направления). В зависимости от нажатой клавиши изменять у всех элементов координаты X и Y. 2. и 3. Затрудняюсь ответить. 
13 Богатое наследство 00:12:53 56 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Наследование - это расширение класса. Класс наследник получает все те же поля и методы, которые есть в родительском классе. Научился использовать наследование. 
Сложности: ---- 
Комментарии: Очень полезный урок.  
14 Фигуральный базовый класс 00:10:56 55 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Узнал способ объединения классов. Поместил все части рисунка в один массив. 
Сложности: Сложность возникла в реализации функции Draw(Shape shape). Самый логичный способ использовать полиморфизм. Можно перенести функции Draw(Line line), Draw(Box box), Draw(Circle circle) и др. в их классы. При помощи оператора foreach ( var class in snowman ) class.Draw(); Но я столкнулся с проблемой, что объект Graphics graph инициализируется в методе Main(). 
Комментарии: Интересно посмотреть как же решить эту задачу. 
15 Рисователь снеговиков 00:11:51 55 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Узнал, что можно определить тип объекта при помощи метода GetType() и как дальше с этим работать.  
Сложности: ---- 
Комментарии: Очень интересно и поучительно. 
16 Переезд метода Draw 00:11:54 55 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Узнал, как можно инициализировать graph и pen. На этом уроке получил ответы на те вопросы, которые возникли на позапрошлом уроке.  
Сложности: --- 
Комментарии: Очень познавательно! 
17 Переезд graph в базовый класс 00:13:10 55 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Закрепление знаний по Наследованию и оптимизации кода. 
Сложности: ---- 
Комментарии: Продолжим! 
18 Мощь полиморфизма 00:09:01 53 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Узнал, что классы с модификатором abstract - это классы с нереализованными методами, а все методы реализуются в классах наследниках. 
Сложности: --- 
Комментарии: Колдовство! 
19 Спрайт для Снеговика 00:12:28 53 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Узнал как создать коллекцию при помощи оператора List<>. Оптимизация. 
Сложности: ---- 
Комментарии: Продолжим! 
20 Перемещение круга 00:11:42 53 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Получается, что все фигуры сначала рисуются в координатах (0, 0), а потом с помощью Move() перемещаются в нужные координаты. Т. о. дальнейшее перемещение фигур будет осуществляться относительно начала координат. 
Сложности: ---- 
Комментарии: Продолжим! 
21 Перемещение других фигур 00:08:37 53 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Повторение пройденного материала. 
Сложности: ---- 
Комментарии: Продолжим! 
22 Перемещение Снеговиков 00:10:48 52 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Сделал перегруженный метод Sprite.Move(), вернул отображение велосипедов, избавился от переменной delta при инициализации bike2. 
Сложности: ---- 
Комментарии: Продолжим! 
23 ПОЛУФИНАЛЬНЫЙ УРОК. 46 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: На практике узнал что такое инкапсуляция, наследование, полиморфизм. 
Сложности: --- 
Комментарии: Очень давно ждал, когда на этом проекте появится подобный курс, т.к. очень не хватало знаний по основам ООП. Спасибо! 
24 Интерфейс. Зачем он нужен. 00:09:33 44 чел. ★ 4.9 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 10 мин. [Показать отчёт]
Научился: Интерфейс - это перечень возможностей, но без их реализации. 
Сложности: --- 
Комментарии: Продолжим! 
25 Интерфейс. Правила игры. 00:12:23 43 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 20 мин. [Показать отчёт]
Научился: Повторил способы создания класса, создание конструктора. 
Сложности: Пока мало что понимаю. 
Комментарии: Надуюсь, дальше всё проясниться. 
26 Интерфейс. Алгоритм игры. 00:07:48 43 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 20 мин. [Показать отчёт]
Научился: Закрепил знания по работе с оператором foreach. 
Сложности: ---- 
Комментарии: Если интервейс - это перечень возможностей без их реализации, а класс GameCach только следит за тем, что происходит и говорит, что делать, то надо реализовать все методы интерфейса. 
27 Интерфейс. Создаём кружок. 00:08:36 42 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Повторение пройденного материала. 
Сложности: ---- 
Комментарии: Почему в конструкторе класса Circle не использовалось слово this? 
28 Интерфейс. Площадка для игры. 00:11:58 41 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Повторил способы создания конструктора класса. 
Сложности: --- 
Комментарии: Класс Арена нужен для создания области, на которой будут происходить все действия. 
29 Интерфейс. Кружок на площадке. 00:11:49 41 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 20 мин. [Показать отчёт]
Научился: Повторение пройденного 
Сложности: ---- 
Комментарии: Продолжим! 
30 Интерфейс. Запускаем кружки на площадку! 00:11:49 41 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 20 мин. [Показать отчёт]
Научился: Повторение пройденного. 
Сложности: ---- 
Комментарии: Продолжим! 
31 Интерфейс. Кружок хочет играть. 00:09:42 41 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 20 мин. [Показать отчёт]
Научился: Научился наследовать класс от интерфейса. 
Сложности: --- 
Комментарии: В функции Беги() должно быть реализовано движение от Красного круга, если Игрок не является Голей и движение к синему, если Игрок является Голей. И всё это с учётом проверки выхода за границы экрана. В функции Поймал(объект) проверять пересечение границ Красного игрока и Синего игрока и обмен цветом. 
32 Интерфейс. Кружок готов к игре! 00:20:47 40 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 40 мин. [Показать отчёт]
Научился: Узнал как при помощи методов GetType() и typeof() сравнить два объекта. 
Сложности: --- 
Комментарии: Мне всё ещё не понятно на какой объект указывает слово this в строчке "return Cross(this, (Circle)obj);"  
33 Интерфейс. Кружочки гоняются друг за другом. 00:11:53 40 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Узнал новую функцию Object.Equals(object obj), которая определяет равен ли заданный объект текущему 
Сложности: --- 
Комментарии: Продолжим! 
34 Интерфейс. Изменяем правила игры. 00:10:22 39 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 40 мин. [Показать отчёт]
Научился: Придумывать правила. 
Сложности: ---- 
Комментарии: Предлагаю игру, в которой изначально есть один лидер, а все остальные рядовые игроки. Все игроки стараются не приближаться к лидер, а лидер старается загнать игрока в угол или к стене. Поймав игрока становиться два лидера, которые сообща или по одиночке отлавливают остальных игроков. При этом должно быть какое либо условие при котором лидер может стать игроком. 
35 Интерфейс. Создаём новую игру. 00:12:31 38 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 40 мин. [Показать отчёт]
Научился: Повторение пройденного. 
Сложности: Сложности были, но благодаря Debug всё встало на свои места. 
Комментарии: SetNewVirus(Игрок) - создаёт первого заражённого. FindNewVirus() перебирает список игроков и смотрит поймал ли вирус кого-нибудь, если поймал, то он добавляет игрока в список вирусов (надо бы при этом удалять его из списка игроков, но когда я это реализую, то шары просто исчезают с экрана) и делает игрока Голей. После охота продолжается.  
36 Интерфейс. ФИНАЛЬНЫЙ УРОК. 00:13:05 35 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Во второй части курса ООП я узнал что такое интерфейс, как он создаётся и для чего он нужен. 
Сложности: Сначала мало что было понятно, но к финальному уроку всё встало на свои места. 
Комментарии: Курс очень интересный и полезный. Считаю, что этот курс нужно пройти всем начинающим программистам, занимающихся на этом проекте и желательно с него начать. 
37 Интерфейс. VIP. Квадратики тоже хотят играть. 00:16:23 35 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 30 мин. [Показать отчёт]
Научился: Повторение пройденного 
Сложности: Так и не разобрался, как узнать пересеклись ли прямоугольники 
Комментарии: --- 
38 Интерфейс. VIP. Пересечение прямоугольников. 00:09:47 33 чел. ★ 5 Done
  Отчёт отправил: 5265. Дмитрий Мерцалов Решено за 20 мин. [Показать отчёт]
Научился: Повторение пройденного. 
Сложности: ---- 
Комментарии: Продолжим! 
39 Интерфейс. VIP. Тяжёлая дружба кругов и квадратов. 00:22:25 27 чел. ★ 5 $
  Итого:   39 видеоуроков общей продолжительностью 7 час. 40 мин. 27 чел. ★ 4.95  
  Финалисты:   lomik,   Роман,   Максим Базуев,   Neverwinter 2,   Владимир,   Никита,   Оля,   Валера Луцевич,   Anton Sozykin,   Permitin Alexey,   Артём,   Максим Лапшинов,   Frank,   Archi,   Александр Львович,   Ильшат,   Олег Михайлович,   Дмитрий,   Новопашин Владимир,   Евгений,   Сергей Соколов,   Александр Б.,   Максим Саратов,   Алексей В.,   Александр,   Rita,   Станислав .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Прокачал работу с коллекциями, увидел всю мощь интерфейсов, когда буквально за 5 минут создали игру по новым правилам.
Трудности: не залипать надолго ;)
На скриншоте патовая ситуация в режиме Замри! Осталось два кружка, движущихся горизонтально, а все остальные замерли. Очень полезная серия уроков, где наглядно продемонстрирована вся мощь и гибкость программирования в парадигме ООП используя Интерфейсы! Спасибо! зы в режиме замерзания получаются интересные фигуры, и это имхо физическая демонстрация налипания частиц! Выбираем цвет для незараженных кружков белый и вот мы видим рождение уникальной, как снежинка, фигуры, которая, когда останется только один ... исчезнет! Завораживающе! Только ради этого стоило пройти этот курс!
Смотреть видеозапись: https://youtu.be/oMPvQB6-RR0
Научился: Научился реализовывать новые правила игры - заражать вирусом других игроков.
Трудности: Ничего.
Вообще завораживает - мне это напоминает процесс кристаллизации, а потом плавления. Короче инь-янь - постоянная тусовка.