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

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

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

Теория ООП

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

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

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

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

3000 руб.


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

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

# Название видеоурока Решило Рейтинг Доступ
1 Инкапсуляция мечты 00:09:02 100 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 10 мин. [Показать отчёт]
Научился: Возможно чему-то и научился :) 
Сложности: Ничего. 
Комментарии: Мне кажется нужно немного по-другому объяснить что такое инкапсуляция, мне смысл понятен что вы хотели донести, но если бы я первый раз столкнулся с этим понятием, то вряд ли бы понял. Скомкано получилось. Робот, кнопки, ремонт, хитпоинты. Или, может я сейчас-под вечер невнимательный слушатель На примере вещей из реального мира или других программ, то что инкапсуляция скрывает редактирование параметров/свойств от посторонних рук. Например, пользователь нажимая на кнопку "Свернуть окно", даже и не подозревает как оно работает изнутри, потому что это инкапсулировано/скрыто от него. Например я, нажимая на педаль газа могу и не подозревать как она работает, а это целый механизм скрытый от моих глаз, мы берем машину не для того, чтобы разбираться как устроены в ней системы, а для того, чтобы она выполняла кучу инкапсулированных от меня функций, то есть ехала, при каждом нажатии на любую педаль или поворот руля срабатывает множество механизмов и датчиков, о которых нам знать не надо, так же у этих механизмов и датчиков есть куча свойств, они заложены производителем и сами мы не можем их изменить. Или нажимая на кнопку спуска воды в унитазе срабатывает механизм обладающий своими параметрами, устройством, о которых нам знать не надо, нам надо просто спустить воду. Или лвл дизайнер расставляя объекты по карте не задумывается о том, как эти объекты созданы и как их изготовили это от него скрыто/инкапсулировано. Или один программист разрабатывает серверную часть программы, а другой клиентскую, ни один из них практически не знает как устроена часть программы другого программиста, он просто использует функции, которые оставил для него другой программист. 
2 Урок рисования 00:08:10 96 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Дом нарисовал, осталось ребенка нарисовать и дерево. 
Сложности: Вспомнить как инициализируется Graphics 
Комментарии: любые замечания, вопросы, комментарии, отзывы. 
3 Первый класс 00:09:53 89 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 10 мин. [Показать отчёт]
Научился: Ничему. 
Сложности: Ничего 
Комментарии: Все отлично. 
4 Второй класс 00:09:13 85 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 10 мин. [Показать отчёт]
Научился: Ничему 
Сложности: Ничего 
Комментарии: мууу 
5 Круглый класс 00:08:10 82 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 10 мин. [Показать отчёт]
Научился: Ничему 
Сложности: Ничего 
Комментарии: кря 
6 Структура пикселя 00:10:55 71 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 10 мин. [Показать отчёт]
Научился: Ничему 
Сложности: Ничего 
Комментарии: Бее 
7 Структура vs Класс 00:25:05 64 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Более глубоко прочувствовал разницу между структурой и классом. 
Сложности: Ничего 
Комментарии: Благодарю. 
8 Пиксели для классов 00:14:44 61 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 15 мин. [Показать отчёт]
Научился: Учусь работать с классами. 
Сложности: Ничего 
Комментарии: Все отлично 
9 Расстояние между пикселями 00:12:12 61 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Вспомнил формулу для вычисления расстояния между точками. 
Сложности: Ничего. 
Комментарии: Красиво получается. 
10 Цветные карандаши 00:14:54 59 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Стал лучше разбираться в большом количестве кода и классов. 
Сложности: Ничего 
Комментарии: Все отлично. 
11 Рисуем Снеговика 00:14:40 58 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Ничему 
Сложности: Ничего 
Комментарии: Пока нет 
12 Второй Снеговик 00:09:46 57 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Ничему. 
Сложности: Ничего. 
Комментарии: Для всех вопросов естественно надо создать функции, а может и общий класс Move. Для изменения масштаба Взять координату центра среднего круга, добавить множитель X на start.y, и множитель X на end.x. Для перемещения Добавить ко всем координатам на сколько мы собираемся переместить. Для поворота Я тоже хочу это узнать, но опять же, нужно взять центральную точку среднего круга и вокруг вертеть.. 
13 Богатое наследство 00:12:53 56 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Понял как нужно "запускать" наследование, как и где нужно прописывать базовые конструкторы для наследующих классов. 
Сложности: Ничего. 
Комментарии: Наследование это когда папа был просто хорошим человеком, а его сын не только хороший человек, но и замечательный программист. 
14 Фигуральный базовый класс 00:10:56 55 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 15 мин. [Показать отчёт]
Научился: Составлять массив из разных объектов, понравилось 
Сложности: Ответить на вопрос. 
Комментарии: В ответ на вопрос сделал такой велосипед: switch(shape.GetType().ToString()) { case "Теория_ООП.Box": Draw((Box)shape); break; case "Теория_ООП.Circle": Draw((Circle)shape); break; case "Теория_ООП.Line": Draw((Line)shape); break; } И он работает :) 
15 Рисователь снеговиков 00:11:51 55 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 15 мин. [Показать отчёт]
Научился: Ничему. 
Сложности: Ничего. 
Комментарии: Переменная position нужна для перемещения снеговика. 
16 Переезд метода Draw 00:11:54 55 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 10 мин. [Показать отчёт]
Научился: ООП 
Сложности: Ничего 
Комментарии: Все отлично. 
17 Переезд graph в базовый класс 00:13:10 55 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 25 мин. [Показать отчёт]
Научился: ООП 
Сложности: Ничего 
Комментарии: Все отлично. 
18 Мощь полиморфизма 00:09:01 53 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 15 мин. [Показать отчёт]
Научился: Узнал про полиморфизм. 
Сложности: То, что передача функции Draw() в нужный класс происходит неявно. То есть не написано, что "я передаю Дроу() в класс Круг, потому что фигура с которой я работаю это круг" Но, думаю больше практики поможет мне забыть об этом. 
Комментарии: Все отлично. 
19 Спрайт для Снеговика 00:12:28 53 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Еще раз разобрал пошагово код. 
Сложности: Понять как передается графика в каждый элемент. Это происходит так: 1)графика передалась в man1 2)и при каждом добавлении фигуры копируется оттуда в саму фигуру. Круто. 
Комментарии: Все хорошо. 
20 Перемещение круга 00:11:42 53 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 10 мин. [Показать отчёт]
Научился: Понял, как мы будем двигать наши спрайты. 
Сложности: Ничего 
Комментарии: Куку 
21 Перемещение других фигур 00:08:37 53 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 30 мин. [Показать отчёт]
Научился: Сам сделал функцию для отрисовки всего массива. 
Сложности: Понять, почему position прописан в массиве, но не прописан в каждой фигуре. Оказывается его надо вручную добавлять в каждую фигуру. 
Комментарии: Все отлично. 
22 Перемещение Снеговиков 00:10:48 52 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 10 мин. [Показать отчёт]
Научился: Посмотрел альтернативный вариант перемещения снеговика. 
Сложности: Ничего. 
Комментарии: Мое перемещение было сделано немного по-другому. Новая позиция передается в массив, как и с нашим graph. А потом при отрисовке в цикле присваивается каждому элементу. 
23 ПОЛУФИНАЛЬНЫЙ УРОК. 46 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 10 мин. [Показать отчёт]
Научился: Ничему 
Сложности: Оторваться. 
Комментарии: Много вещей понравилось и немного не понравилось, сформулирую как пройду курс, дабы не забегать вперед паровоза. 
24 Интерфейс. Зачем он нужен. 00:09:33 44 чел. ★ 4.9 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Примерно узнал что такое интерфейс, но пока не понимаю как это все реализовывается и зачем это на практике нужно. 
Сложности: Узнать что тако интерфейс. 
Комментарии: Интерфейс это характеристика объекта/ов. Например: плохой мальчик. Умеет: драться, кусаться, кувыркаться, ругаться. И, наверное с этим набором функций будет сравниваться объект. 
25 Интерфейс. Правила игры. 00:12:23 43 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 29 мин. [Показать отчёт]
Научился: Еще больше понял зачем нужен интерфейс. 
Сложности: Ничего 
Комментарии: Find new leader() Работает так: Перебирает весь массив на "касания" находит "соприкоснувшуюся" пару и если один из них лидер, то вычленяем того, кто не лидер в функцию SetNewLeader() и делаем его лидером, только пока непонятно как будет организовано взаимодействие между абстрактными и не абстрактными объектами.  
26 Интерфейс. Алгоритм игры. 00:07:48 43 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Пока не понял 
Сложности: Ничего. 
Комментарии: Для игры нужно добавить объекты, движение им и как они будут взаимодействовать. 
27 Интерфейс. Создаём кружок. 00:08:36 42 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 15 мин. [Показать отчёт]
Научился: Создавать класс Circle 
Сложности: ничего 
Комментарии: двигаем дальше. 
28 Интерфейс. Площадка для игры. 00:11:58 41 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Создавать класс Arena. 
Сложности: Наконец понял для чего нужен класс Graphics. Pen - кисть Bitmap - холст Graphics - художник 
Комментарии: мяу. 
29 Интерфейс. Кружок на площадке. 00:11:49 41 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Пока не понял чему. 
Сложности: Ничего 
Комментарии: Все отлично. 
30 Интерфейс. Запускаем кружки на площадку! 00:11:49 41 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 29 мин. [Показать отчёт]
Научился: Создавать кружки на арене. 
Сложности: Ничего 
Комментарии: Все отлично. 
31 Интерфейс. Кружок хочет играть. 00:09:42 41 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: РЕАЛИЗОВЫВАТЬ интерфейсы. 
Сложности: Ничего 
Комментарии: Для того, чтобы исполнить беги и поймал, мне кажется пришло время нашего арбитра. 
32 Интерфейс. Кружок готов к игре! 00:20:47 40 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 25 мин. [Показать отчёт]
Научился: теории ООП 
Сложности: Ничего 
Комментарии: Все отлично 
33 Интерфейс. Кружочки гоняются друг за другом. 00:11:53 40 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Искать ошибки 
Сложности: Не поставил break в функции, где выбирается новый лидер. И при пересечении кружков лидер не менялся, так и не понял почему... пока... 
Комментарии: Все отлично 
34 Интерфейс. Изменяем правила игры. 00:10:22 39 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 20 мин. [Показать отчёт]
Научился: Пока не понял. 
Сложности: Ничего 
Комментарии: http://agar.io/ 
35 Интерфейс. Создаём новую игру. 00:12:31 38 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 30 мин. [Показать отчёт]
Научился: Написал "примерный код" как это будет работать. Вижу полное решение через введение еще одного массива, который будет буфером для инфицированных, который будет отрабатывать после того, как программа проверит на инфицированных. Интересно посмотреть, что на этот раз придумает неугомонный Евгений Витольдович. 
Сложности: Ничего. 
Комментарии: Все отлично. 
36 Интерфейс. ФИНАЛЬНЫЙ УРОК. 00:13:05 35 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 33 мин. [Показать отчёт]
Научился: Работать с кодом. 
Сложности: Найти ошибку. 
Комментарии: Интересный опыт с десятиминутными роликами. Но, хотелось бы, чтобы в подобных десятиминутных роликах было максимум новой информации. 
37 Интерфейс. VIP. Квадратики тоже хотят играть. 00:16:23 36 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 41 мин. [Показать отчёт]
Научился: Думать как каракал. 
Сложности: Сделать обработку прикосновений прямоугольников.. она и сейчас не работает :) 
Комментарии: Зеленая ограда. 
38 Интерфейс. VIP. Пересечение прямоугольников. 00:09:47 33 чел. ★ 5 Done
  Отчёт отправил: 6696. Владимир Борисенко Решено за 30 мин. [Показать отчёт]
Научился: Узнал, как пересекаются кубики. 
Сложности: Ничего. 
Комментарии: Все отлично. 
39 Интерфейс. VIP. Тяжёлая дружба кругов и квадратов. 00:22:25 27 чел. ★ 5 Open
  Итого:   39 видеоуроков общей продолжительностью 7 час. 40 мин. 27 чел. ★ 4.95  
  Финалисты:   lomik,   Роман,   Максим Базуев,   Neverwinter 2,   Владимир,   Никита,   Оля,   Валера Луцевич,   Anton Sozykin,   Permitin Alexey,   Артём,   Максим Лапшинов,   Frank,   Archi,   Александр Львович,   Ильшат,   Олег Михайлович,   Дмитрий,   Новопашин Владимир,   Евгений,   Сергей Соколов,   Александр Б.,   Максим Саратов,   Алексей В.,   Александр,   Rita,   Станислав .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Создали новую игру на старом интерфейсе.
Трудности: Сложностей не возникло, но все новое.
Курс ООП очень понравился, познакомился с новыми понятиями "Инкапсуляция", "Наследование", "Полиморфизм". Научился создавать спрайты, а также создавать множество игр на одном интерфейсе. Планирую активно использовать полученные навыки на практике, в частности, при создании своей игры.
Научился: Легким движением руки кардинально менять смысл программы
Трудности: Все просто
Довольно наглядно объясняется что такое интерфейс.Понять назначение данной конструкции без практики трудно.