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

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Клуб формулистов - Ежемесячная подписка

Вступление в Клуб Формулистов на выгодных условиях для НОВЫХ участников.

После взноса  999  499 руб. вы получите подписку
в Клуб Формулистов на 30 дней и 256 байт для быстрого старта.
Байты используются для открытия более одного урока в день, по 50 байт за урок.

Стоимость 1 дня за первый месяц: всего 16 рублей.

Первый взнос - 499 руб./30 дней.

Через 30 дней будет списано 3,000 2,400 руб.
за продление подписки в Клуб на 30 дней + подарок 512 байт.

Так будет продолжаться каждые 30 дней, пока вы не отмените подписку.
Средства будет автоматически считываться с вашей карты.
Вы в любой момент сможете отказаться от продления Клуба.

Только ДО КОНЦА НЕДЕЛИ -
-50% скидка на первый взнос, всего 499 (вместо 999) рублей!
-20% скидка на ЕЖЕМЕСЯЧНЫЙ платёж!
Всего 2400 руб/месяц (вместо 3000 руб/месяц), или 80 руб./день - цена чашки кофе.


Стоимость 1 дня: 80 руб.

Хочу вступить!

Также есть другие варианты оплаты участия в КФ:

Билет в клуб формулистов на ...
30+ дней | 60 дней | 150 дней | 380 дней | 1000 дней

Внимание!
Стоимость участия в Клубе формулистов увеличивается 1 числа каждого месяца на 100 рублей.
При оформления подписки стоимость остаётся постоянной, пока подписка не будет отменена.







Первый взнос - 499 руб./30 дней + 500 байт.
Последующие взносы - 3,000 2400 руб./месяц + 512 байт.



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

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE Инкапсуляция мечты 00:09:02
2 теста
248 чел. ★ 4.9 Done
  Курс по теории Объектно-ориентированного программирования.
С нуля создаётся проект по рисованию различных геометрических фигур,
которые потом объединяются в спрайты, взаимодействуют друг с другом.

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

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

Выдержка из отчёта Ларисы по завершению курса.
1) Получила представление о методах ООП - инкапсуляции, полиморфизме и наследовании.
Эти три "кита" позволяют изменять и усложнять программы, добавляя в них новые возможности;
2) Научилась рисовать простые геометрические фигуры;
3) Создавать базовые и производные классы;
4) Создавать структуры и работать с пикселями;
5) Создавать фигуры из массива простых фигур в том числе и в цвете;
6) Передвигать простую фигуру;
7) Создавать класс объектов Sprite, являющийся производным от базового абстрактого класса Shape,
а в нем список List, который содержит произвольное число фигур и функцию, которая добавляет фигуру,
а также метод Move, который двигает её;
8) Освоила BreakPoint, который дает возможность проследить переходы в классе и связи между классами;
9) Познакомилась с абстрактыми и виртуальными методами в абстрактном базовом классе и методами override в производных классах. Совокупность этмх методов позволяет передвигать сложные фигуры как целое.
Отчёт отправил: 24. Олюшка Выполнено за 35 мин. [Показать отчёт]
Научился: Инкапсуляцию можно сравнить с работой автомобиля с точки зрения типичного водителя. Многие водители не разбираются в подробностях внутреннего устройства машины, но при этом управляют ею именно так, как было задумано. Пусть они не знают, как устроен двигатель, тормоз или рулевое управление, — существует специальный интерфейс, который автоматизирует и упрощает эти сложные операции. Сказанное также относится к инкапсуляции и ООП — многие подробности "внутреннего устройства" скрываются от пользователя, что позволяет ему сосредоточиться на решении конкретных задач. В ООП эта возможность обеспечивается классами, объектами и различными средствами выражения иерархических связей между ними. Другими словами,  вы даете пользователю некий класс и некий интерфейс. Пользователь может работать с объектом класса только через интерфейс, любые возможности влияния на объект кроме как через интерфейс должны быть исключены. 
Сложности: действительно понять что такое инкапсуляция и подобрать картинку 
Комментарии: замечаний нет, двигаемся вперед к новому и интересному!!!))) 
2 Урок рисования 00:08:10
2 теста
206 чел. ★ 4.9 Done
  На этом уроке мы нарисуем домик из двух линий и прямоугольника.
Отчёт отправил: 24. Олюшка Выполнено за 15 мин. [Показать отчёт]
Научился: рисовать домик с помощью объектов Bitmap, Graphics и Pen.  
Сложности: подобрать координаты крыши)))) 
Комментарии: движемся дальше…. впереди самое интересное)))) пока все понятно, спасибо Евгений)))) 
3 Первый класс 00:09:53
2 теста
193 чел. ★ 4.8 Done
  На этом уроке мы создадим первый класс - Line.
И перепишем программу, чтобы она работала точно так же.
Отчёт отправил: 24. Олюшка Выполнено за 28 мин. [Показать отчёт]
Научился: создавать класс, конструктор 
Сложности: благодарю подробным объяснениям Евгения сложностей не возникло))) 
Комментарии: Спасибо за понятные пояснения!!!! 
4 Второй класс 00:09:13
185 чел. ★ 4.9 Done
  На этом уроке мы создадим второй вспомогательный класс - Box.
Порассуждаем на тему "наследования" и переделаем программу.
Отчёт отправил: 24. Олюшка Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: пока еще не знаю есть вопрос, что-то слегка запуталась в построение прямоугольника 
Сложности: еще не знаю точно, мне пока понятно 
Комментарии: возможно я что-то не поняла в создании прямоугольника, хотя во втором уроке, когда мы его первый раз нарисовали вы обозначили, что при рисовании его мы задаем координаты верхнего левого угла и ширину, и высоту…. а в этом уроке вы сначала изменили его параметры, до описания метода Draw(Box box), а затем уже начали в классе Box, в конструкторе, вычитать из координаты верхнего угла координаты ширины и высоты, просмотрите пожалуйста этот момент, я пересматривала несколько раз и так этого и не поняла, вот тут просто как мы раньше его и рисовали во втором уроке https://msdn.microsoft.com/ru-ru/library/x6hb4eba(v=vs.110).aspx, у меня параметры изначально были другие и когда я начала повторять за вами мой прямоугольник уменьшился и это логично ведь мы просто ширину и высоту уменьшили…. хотя может я все же недопонимаю чего, если не трудно объясните!!!! Спасибо!!!)))) 
5 Круглый класс 00:08:10
182 чел. ★ 4.9 Done
  Создадим класс для задания окружности - Circle.
Дополним окружность в центре домика.
Отчёт отправил: 24. Олюшка Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: рисовать окружность)))) 
Сложности: понять почему именно так формируем круг в координатах… 
Комментарии: я не совсем поняла для чего мы ввели новые переменные x1 и y1 для вычисления верхнего левого угла…. и еще наверно вы оговорились ведь для окружности так же и как для боксика мы задает один угол верхний правый (с координатами x, y) и от них уже ширину высоту… возмно я не так понимаю это, хотя запросто могу ошибаться т.к. все математику напрочь забыла….)))) 
6 Структура пикселя 00:10:55
171 чел. ★ 4.9 Done
  Создадим структуру для задания координат пикселя
и перепишем классы и программу с её использованием.
Почитать об отличии класса от структуры:
http://www.cyberforum.ru/csharp-beginners/thread442631.html
Отчёт отправил: 24. Олюшка Выполнено за 23 мин. [Показать отчёт]
Научился: точки создавать))) и уже понимаю как задавать координаты!!! 
Сложности: в этом уроке сложностей не возникло, все очень наглядно видно!!! 
Комментарии: мне даже так больше нравиться через точки линию создавать…. возможно это не удобно т.к. точек тогда нужно кучу создать, зато менять линии очень удобно, сделала касательные маленькой верхней окружности, теперь красотище)))  
7 Структура vs Класс 00:25:05
1 тест
162 чел. ★ 4.9 Done
  На этом дополнительном уроке наглядно демонстрируются главные отличия между struct и class в языке C#.
Отчёт отправил: 24. Олюшка Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: после трехразового просмотра дошло различие между классом и структурой)))) 
Сложности: сложно уловить такие тонкости в понимании, как бы на первый взгляд понятно, а в общей картинке эти "маленькие" различия и теряются, еще долго искала чтобы просмотреть изменения - Locals))) 
Комментарии: Огромнейшее спасибо за этот очень нужный урок, в котором стало все очень понятно показано на пальцах, без сложных и заумных высказываний, вы разжевали и даже в ротик положили такую важную информацию, и благодаря вам я с легкостью проглотила)))) 
8 Пиксели для классов 00:14:44
2 теста
157 чел. ★ 4.9 Done
  На этом уроке мы продолжим внедрение структуры Pixel в наши классы.
Будем её использовать для хранения координат внутри класса.
Также избавимся от повторяемого кода внутри конструкторов.
Отчёт отправил: 24. Олюшка Выполнено за 1 час. 15 мин. [Показать отчёт]
Научился: понятно стало как перегружается конструкторы через this 
Сложности: самое сложное что я так и не могу понять как задается окружность, через верхнюю левую тачку с координатами x, y и высоту и ширину…(((( 
Комментарии: все замечательно двигаемся дальше, пишем-практикуемся и все уже хорошо получается а дальше еще круче будет))) 
9 Расстояние между пикселями 00:12:12
2 теста
155 чел. ★ 4.9 Done
  Как вычислить расстояние между двумя пикселями?
Есть специальная формула, которую можно разместить в структуру Pixel.
Теперь мы сможем создать ещё один конструктор окружности по центру и любой точке на окружности.
Отчёт отправил: 24. Олюшка Выполнено за 1 час. 20 мин. [Показать отчёт]
Научился: красиво использовать перегрузку конструкторов, и еще узнала про маленький класс который называется структура)))) 
Сложности: разобраться с окружностью))) пока эта элементарная геометрия вгоняет в ступор)))) 
Комментарии: Все больше понеманимания приходит, практика великая сила, спасибо Евгений!!! :)))) 
10 Цветные карандаши 00:14:54
1 тест
152 чел. ★ 4.9 Done
  Возьмём цветные карандаши и будем раскрашивать наш домик.
Создаём новые классы для цветны линий, окружностей и прямоугольников.
Отчёт отправил: 24. Олюшка Выполнено за 30 мин. [Показать отчёт]
Научился: создавать цветные боксик, окружность и линии, а еще стало понятно что я конечно не поняла но действительно нужно задавать координату так как показано в уроке 
Сложности: не запутаться в строчка кода и классах, хотя у меня все получилось и даже практически самостоятельно создала класс колобоксик только сверялась с видео)))) 
Комментарии: уж, что ж будет дальше, с нетерпением жду)))) 
11 Рисуем Снеговика 00:14:40
151 чел. ★ 4.9 Done
  На этом уроке мы создадим ... Снеговика (спрайт) —
более сложную фигуру, которая состоит из других фигур.
В дальнейшем мы будем работать с такими спрайтами,
перемещать их, поворачивать, масштабировать,
а пока ... мы просто нарисуем Снеговика.
Отчёт отправил: 24. Олюшка Выполнено за 1 час. 20 мин. [Показать отчёт]
Научился: добавлять координаты, уже делаю самостоятельно, без видео)))) 
Сложности: нарисовать снеговика в поинте и вычислить координаты чтобы он получился более-менее красивенький)))) 
Комментарии: урок замечательный, уже с нетерпением жду продолжение… толи еще будет)))) Спасибо Евгений!!!! 
12 Второй Снеговик 00:09:46
1 тест
151 чел. ★ 4.9 Done
  На этом уроке мы создадим второй спрайт -
ещё одного снеговика, но разноцветного.

Вопрос для перехода к следующему уроку:
Что нужно изменить в этой программе, чтобы мы могли
а) перемещать снеговика;
б) поворачивать снеговика;
в) изменять размер снеговика.
Отчёт отправил: 24. Олюшка Выполнено за 25 мин. [Показать отчёт]
Научился: больше осознанности в работе при создание новых объектов, и работа с ними…  
Сложности: сложностей не возникло, можно было сказать что утомляем копирование кода, а мне все равно понравилось, лучше закрепляется и откладывается в памяти зато)))), сложно только ответить на вопрос, т.к. даже не понимаю пока как это нужно сделать….. 
Комментарии: насчет трех вопросов, я не знаю как это реализовать в коде, однако думаю что все объекты для одного снеговика нужно объединить как то, затем выбрать тачку относительно которой будем крутить, и для кручения (поворота) нужно угол как то задать наверно тоже по координатам…. очень хочется это узнать как это будет…. можно целое семейство тогда плодить, даже целый клан снеговиков….)))) 
13 Богатое наследство 00:12:53
2 теста
150 чел. ★ 5 Done
  Наконец-таки мы возьмёмся за наследование.
Убираем повторяющийся код из цветных классов.
Осмысливаем значение термина «наследование».
Отчёт отправил: 24. Олюшка Выполнено за 20 мин. [Показать отчёт]
Научился: узнала про наследованное и даже применила, это круто!!! Осталось еще прописать на других примерах чтобы усвоить окончательно урок!!!! еще теперь знаю новое слово и как оно работает - это слово base, для конструктора, чтобы передавать значения из родительского конструктора!!!! 
Сложности: Спасибо Евгений, за такое легкое и доступное объяснение, все понятно и сложностей не возникло, хотя я очень боялась этой темы!!! 
Комментарии: наследование можно представить учителя и ученика, учитель дает базу которую он знает, а ученик эту базу применяет и использует, но ему ведь скучно только копировать учителя и он подставляет уже свои новые фишки к основной базе)))) вот как то так я понимаю это наследование… 
14 Фигуральный базовый класс 00:10:56
148 чел. ★ 5 Done
  Очень хочется все элементы снеговика поместить в один массив.
Сейчас это сделать нельзя - придётся делать три массива - для кругов, для линий, для боксиков...
Решение гениальное - создаём базовый класс фигуры - Shape, создаём массив фигур, и все фигуры помещаем в этот массив!
После размещения фигур в массив можно видеть, что каждая фигура в нём хранится не как фигура, а под своим типом.
А все под одной крышей они могут находится потому что все они - фигуры, так как унаследованы от Shape.
Отчёт отправил: 24. Олюшка Выполнено за 30 мин. [Показать отчёт]
Научился: узнала что можно в массив загонять разные объекты и упростить вывод рисования с помощью цикла 
Сложности: ответить на вопрос, так пока не ответила, жду следующего урока, пояснений как сделать функцию рисования((( 
Комментарии: все больше и больше нравится, очень жду пояснений и интересно как же мы все так просто и легко усовершенствуем и облегчаем код)))) 
15 Приведение с мотором 00:11:51
1 тест
148 чел. ★ 4.9 Done
  На этом уроке мы реализуем метод Draw (Shape shape) через серию условных операторов.
А также создадим функцию для рисования целевого спрайта (снеговика) - Draw (Shape [] shapes).
Результат работы программы не изменяется, а вот содержимое кода всё более и более облагораживается.
Отчёт отправил: 24. Олюшка Выполнено за 35 мин. [Показать отчёт]
Научился: еще большей оптимизации кода, он все уменьшается, как снеговики на солнышке… 
Сложности: сложно уже вспомнить как было в начале))) сложно еще мне въехать, точнее осознать запись if (shape.GetType() == typeof(Line)), не хватает теоретических знаний и знаний синтаксиса языка, впервые встретилась с typeof))) 
Комментарии: Shape.position - думаю это будет координата относительно которой будут перемещаться все объекты, т.е. пересчитываться они будут относительно этой позиции, жду следующего урока, в котором Евгений все расскажет, покажет и мы уже начнем перемещать наших красавцев)))) 
16 Переезд метода Draw 00:11:54
146 чел. ★ 4.9 Done
  На этом уроке мы начнём переносить функции для рисования фигур из основной программы в классы.
Отчёт отправил: 24. Олюшка Выполнено за 25 мин. [Показать отчёт]
Научился: узнала что такое полиморфизм в простом понятном изложении   
Сложности: сложностей не возникло, даже мои снеговички перерисовались с первого запуска, спасибо Евгений!!! 
Комментарии: хорошо идем, мне нравится по шагам проделывать оптимизацию кода с простыми и понятными объяснениями!!! 
17 Переезд graph в базовый класс 00:13:10
1 тест
145 чел. ★ 5 Done
  На этом уроке мы напишем функции для рисования фигур во всех остальных классах.
Отчёт отправил: 24. Олюшка Выполнено за 32 мин. [Показать отчёт]
Научился: создавать красоту убирая лишние строчки кода, делая минимализм его))))   
Сложности: сложностей не возникло, пока только переписываю, стараюсь запомнить как это мы делаем))) 
Комментарии: хорошо получается, мне нравиться, пока вот только запомнить не могу, нужно практиковаться еще, не получается выполнить все так же без видео и комментариев Евгения, за что ему огромнейшее СПАСИБО!!! 
18 Мощь полиморфизма 00:09:01
2 теста
141 чел. ★ 5 Done
  На этом уроке мы создадим в базовом классе функцию Draw(),
и при её вызове через механизм полиморфизма будет запускаться созвучный метод нужного класса.
Отчёт отправил: 24. Олюшка Выполнено за 20 мин. [Показать отчёт]
Научился: узнала и познакомилась с абстрактным классом, увидела как он вызывается в потомках, в классах которые наследуют его через override!!!  
Сложности: при написании сложностей не возникло, материал очень хорошо и доходчиво подается остается только выполнять и главное запомнить, вот запоминать все новое пока солоновато, нужно прописать и применить не один раз и все very good!!! 
Комментарии: все замечательно, медленно и уверенно двигаемся в перед расширяя и добавляя знания при этом уменьшая и улучшая код программы!!!! просто супер!!!))))  
19 Спрайт для Снеговика 00:12:28
1 тест
140 чел. ★ 5 Done
  На этом уроке мы создадим новый класс - Sprite, в котором будет хранится список всех фигур, из  которых строится графический объект, чтобы в основной программе мы могли оперировать сразу спрайтами, а не их составными элементами.
Отчёт отправил: 24. Олюшка Выполнено за 29 мин. [Показать отчёт]
Научился: очень многому интересному и полезному, еще более уменьшается базовый класс, узнала что такое коллекция, первый раз такое применяла, очень удобно показалось на первый взгляд, надеюсь еще будем такое применять, узнала чем отличается абстрактный класс от интерфейса, надеюсь на практике эти различия еще больше увижу)))   
Сложности: сложностей не возникло, очень замечательно Евгений объяснил!!! 
Комментарии: Благодарю за такой познавательный и полезный урок!!! С нетерпением жду следующий, в предвкушении еще более интересного)))) 
20 Перемещение круга 00:11:42
1 тест
139 чел. ★ 4.9 Done
  На этом уроке мы начнём реализовывать идею перемещения спрайтов.
Начнём, как обычно, с простого. Научимся перемещать один кружок.
Отчёт отправил: 24. Олюшка Выполнено за 21 мин. [Показать отчёт]
Научился: увидела и поняла как написать метод для перемещения окружности) 
Сложности: Все понятно изложено и сложностей не возникло) 
Комментарии: Скоро уже и снеговики передвинуться, в ожидании этого чуда!!! Спасибо за урок и пояснения) 
21 Перемещение других фигур 00:08:37
2 теста
137 чел. ★ 5 Done
  На этом уроке мы переделаем метод Draw() для остальных фигур - Line и Box().
Наша программа теперь по нажатию кнопочки будет перемещать сразу три фигурки.
Отчёт отправил: 24. Олюшка Выполнено за 2 час. 20 мин. [Показать отчёт]
Научился: задавать координаты для перемещения 
Сложности: не сразу далось сделать снеговику шапочку чтобы одеть и другому, все не понимаю как он отсчитывает координаты( 
Комментарии: наигралась с координатами, хотела чтобы снеговички немного повеселей были вот и зарисовалась с ними, подгадывала координаты))) Уже скоро и сами они двигаться начнут!!! 
22 Перемещение Снеговиков 00:10:48
1 тест
137 чел. ★ 4.9 Done
  На этом уроке мы научим перемещаться целых снеговиков.
Для этого нам не нужно будет менять метод Draw(),
мы воспользуемся полиморфизмом!
Отчёт отправил: 24. Олюшка Выполнено за 30 мин. [Показать отчёт]
Научился: test kartinki использовать virtual для абстрактного класса, перемещать снеговиков в разные места одним нажатием в разные стороны 
Сложности: сложностей при такой подаче информации не возникает, было только невнимательное копировать, при копирование метода Move в Sprite не указала position и не могла понять почему кнопка не работает)))  
Комментарии: Урок понравился, Евгению огромное спасибо за шикарное объяснение и мои снеговички улыбаются Вам и уже с нетерпением жду следующего урока, ведь они хотя еще  станцевать вам))) Интересно почему-то когда я хочу переделать свою работы файл прикрепился, а в результате остался старый))) 
23 ПОЛУФИНАЛЬНЫЙ УРОК. без видео
128 чел. ★ 4.9 Done
  На этом первая часть видеокурса "Теория ООП" закончилась.
Пожалуйста, напиши отзыв об этом курсе,
что тебе понравилось, что узнал нового,
что можно было бы сделать лучше,
оправдал ли курс твои ожидания.

Приложи своё фото и напиши своё имя-фамилию.

(видео в этом уроке нет)
Отчёт отправил: 24. Олюшка Выполнено за 15 мин. [Показать отчёт]
Научился: излагаться четко, понятно и кратко, подводить итоги пройденного материал 
Сложности: сложностей не было!!! 
Комментарии: Спасибо Евгений за этот чудесный и мой любимый курс!!! Благодаря этому курсу я прикоснулась к серьезным и важным понятиям ООП в доступной, легкой игровой форме! Про ООП впервые услышала на этом курсе однако сложностей не возникало и было все ясно, ведь Евгений очень подробно рассказал объяснял в каждом уроке, шаг за шагом! Я безумно счастлива и рада каждому занятию, с удовольствием прошла эти все интересные и познавательные уроки и мои знания намного расширились и увеличились, конечно их еще буду дальше развивать и укреплять доводить до самостоятельного применения! Женя, Благодарю тебя за свои знания! С огромным уважением и радостью, Головина Оля!❤️  
24 Интерфейс. Зачем он нужен. 00:09:33
1 тест
125 чел. ★ 4.9 Done
  На этом уроке я объясню своими словами, что такое интерфейс.
Мы поговорим об игре "Голя" или "Сифа" или "Вода",
о том, кто в неё может играть, и что делать тем,
кто не знает правила игры.
В конце урока мы создадим наш интерфейс.

Правила игры, для тех, кто не знает:
Выбирается ведущий.
Его цель - догнать и дотронуться до кого-либо из участников.
Цель остальных - не допустить этого.
Когда ведущий дотронется до кого-либо (заголит) - ведущим становится новый участник.
Отчёт отправил: 24. Олюшка Выполнено за 30 мин. [Показать отчёт]
Научился: узнала что такое интерфейс, потренировалась создавать интерфейс, выразить простым языком не простое понятие :) 
Сложности: очень понятное слово, которым часто пользуемся, а выразить его не так-то и просто простым языком, надеюсь у меня получилось и тебе понятно что такое интерфейс! 
Комментарии: Интерфейс - это механизм, который  дает возможность обмениваться информацией, чего-либо ☞ любому, например мне понравилось такое определение: Физический интерфейс - это бактерии закрепленные на нервных волокнах внутри тела и преобразующие биотоки в инфракрасные сигналы, которыми обмениваются киборг-бактерии. Увлекательный и интересный урок, заставил меня еще больше задуматься! Спасибо тебе Евгений! :)  
25 Интерфейс. Правила игры. 00:12:23
1 тест
123 чел. ★ 5 Done
  На этом уроке мы поговорим о правилах игры в догоняшки.
На прошлом уроке мы выясняли, что должны уметь делать игроки.
На этом уроке мы начнём писать класс, в котором
опишем конкретные правила нашей игры.
Отчёт отправил: 24. Олюшка Выполнено за 25 мин. [Показать отчёт]
Научился: попрактиковалась со списком, классом List<>, прокачала создания конструктора 
Сложности: сложностей не возникло, я еще этот урок на вебинаре выполнила!!! 
Комментарии: private void FindNewLeader() если лидера нет выходим; организовываем цикл в если лидер.Поймал() тогда выполняем функцию SetNewLeader(Игрок game) в ней если лидер выбран и лидер.НеГоля() лидер родолжает играть; если лидер выбран и лидер.Голя() функция завершила работать У меня она уже написана, однако не стану ее прикладывать чтобы не было соблазна просто ее прописать, так что скриншот прикладываю с вебинара!!! Хороший урок! Спасибо Евгений! :)  
26 Интерфейс. Алгоритм игры. 00:07:48
122 чел. ★ 4.9 Done
  На этом уроке мы допишем класс GameCatch.
Напишем реализацию методов FindNewLeader() и SetNewLeader().
Ваша задача - подумать и написать, что нужно ещё сделать,
чтобы можно было начать играть в эту игру.
Отчёт отправил: 24. Олюшка Выполнено за 10 мин. [Показать отчёт]
Научился: потренировалась в написании методов, усвоила для чего нужен return 
Сложности: сложностей не возникло, этот урок еще выполнила на вебинаре, а сейчас еще раз посмотрела освежила знания 
Комментарии: дальше думаю нам нужно создать самих игроков, и поле где они будут бегать и друг за другом Спасибо за пояснения и отличный урок! Мне нравится как мы продвигаемся и постепенно осваиваем новое и прокачиваемся! :) 
27 Интерфейс. Создаём кружок. 00:08:36
120 чел. ★ 4.9 Done
  На этом уроке мы создадим объект для нашей игры - Кружок!
У кружочка есть координаты центра, радиус и цвет.
Цель урока - создать класс Circle.cs
Отчёт отправил: 24. Олюшка Выполнено за 15 мин. [Показать отчёт]
Научился: повторила типы переменных и про void, создания класса, конструктора 
Сложности: не было сложно, все понятно  
Комментарии: нам нужно поле где эти игроки будут отображаться и играть, я так думаю Хороший урок, пока все легко и ясно, уже хочется увидеть что дальше! Спасибо Евгений за интересную подачу информации! :) 
28 Интерфейс. Площадка для игры. 00:11:58
1 тест
119 чел. ★ 5 Done
  На этом уроке мы начнём создавать класс Arena,
который создаст поле для игры и реализует
методы для отображения объектов на экране.
Отчёт отправил: 24. Олюшка Выполнено за 20 мин. [Показать отчёт]
Научился: отлично прокачала знания класса Random вспомнила как создаем графику, потренировалась создавать конструктор 
Сложности: сложностей не возникло, с таким подробным объяснением любой ребенок создаст и поймет что он делает 
Комментарии: класс Арена нужен нам для того чтобы на нем у нас вырисовывались наши участники игры (игроки-кружки) Отлично все получается, двигаюсь дальше, ведь впереди еще много интересного и полезного! Спасибо за чудесный урок, очень понравился!!! :) Пока вывести кружек на арену не знаю точно как, по этому жду продолжения, а про Random +++ (три плюсика, смотрела твое видео, СПАСИБО за пояснение) 
29 Интерфейс. Кружок на площадке. 00:11:49
1 тест
118 чел. ★ 4.9 Done
  На этом уроке мы допишем класс Arena,
реализуем методы Show(Circle), Refresh(), static NewCircle().
Всё готово к созданию кода для отображения кружка из класса Form1.cs!

Отчёт отправил: 24. Олюшка Выполнено за 25 мин. [Показать отчёт]
Научился: потренировалась реализовывать метод отображения кружка (создание метода Show), потренировалась реализовать рандомный размер наших кружков 
Сложности: все было легко, хотя самой вывести шарик не удалось пока, с нетерпением жду следующего урока!!! 
Комментарии: Очень увлекательно и полезно было потренироваться еще раз, еще больше практики, знания укрепляются!!! Спасибо за классный урок, и до следующей тренировки! :) 
30 Интерфейс. Запускаем кружки на площадку! 00:11:49
3 теста
118 чел. ★ 5 Done
  На этом уроке мы настроим нашу форму,
напишем несколько волшебных строчек,
и ... программа заработает!!!
У нас будет много-много кружков на экране 8-о

Отчёт отправил: 24. Олюшка Выполнено за 27 мин. [Показать отчёт]
Научился: реализовать вывод кружков на форму, потрошила работу с формой и создания события кнопки 
Сложности: все было супер! 
Комментарии: Очень порадовалась, для меня запуск и результат это восторг и счастье!!! Поиграла немного с отображением, мне захотелось чтобы кружки были закрашенные, хотя так не удалось пока сделать!!! Класс, с радостью перехожу к следующему урока, а за этот Благодарю!!! :) 
31 Интерфейс. Кружок хочет играть. 00:09:42
2 теста
117 чел. ★ 4.9 Done
  На этом уроке мы унаследуем кружок от интерфейса Игрок.
Теперь для запуска программы нам придётся реализовать
методы из его интерфейса.
В этом уроке мы реализуем методы Голя() и НеГоля().
Отчёт отправил: 24. Олюшка Выполнено за 25 мин. [Показать отчёт]
Научился: потренировалась наследовать интерфейс 
Сложности: пока сложно описать что будет в методах Беги() и Поймал() 
Комментарии: Спасибо за урок, он мне понравился, жду следующего урока, чтобы узнать как реализовать методы Беги() и Поймал()! :) Да, Женя, не читала, очень некорректно все написала, скришот не сохранился, прикладываю уже из следующего урока! Спасибо Женя! :) 
32 Интерфейс. Кружок готов к игре! 00:20:47
1 тест
116 чел. ★ 5 Done
  На этом уроке мы допишем методы Игрока в классе Circle.
Реализуем метод Беги() и Поймал(), и даже исправим
недочёты в описании интерфейса (!!).
В конце урока я ответил на многочисленные вопросы участников.
Отчёт отправил: 24. Олюшка Выполнено за 45 мин. [Показать отчёт]
Научился: познакомилась с перегрузкой конструктора, узнала больше про this 
Сложности: не легко было понять запись return Cross(this, (Circle)obj); Хотя после объяснения стало понятней! 
Комментарии: для запуска теперь нужно как-то связать метод Беги() с Ареной скорей всего через таймер Интересно будет дальше! Спасибо за объснения вопросов! 
33 Интерфейс. Кружочки гоняются друг за другом. 00:11:53
1 тест
115 чел. ★ 5 Done
  На этом уроке мы добавим в форму класс GameCatch,
Разместим таймер и наконец-таки запустим нашу игру -
Шарики начнут гоняться друг за другом!
Отчёт отправил: 24. Олюшка Выполнено за 35 мин. [Показать отчёт]
Научился: оживить картинку, чтобы все начало двигаться; наконец произошел запуск игры! 
Сложности: не сразу получилось сделать чтобы шарики не останавливались и не прилипали к краям,  а отскакивала, оказалось все просто, не там поставила минус!!! :) 
Комментарии: может нужно сделать задержку на 10 сек к примеру, или же Голя не может Голить того кто его заголил Ура, урок выполнен и все уже красиво движется!!! Мне нравится! Спасибо Женя!!! :)  
34 Интерфейс. Изменяем правила игры. 00:10:22
1 тест
113 чел. ★ 5 Done
  На этом уроке мы добавим в правила игры задержку
после получения Голи. Ведущий будет считать до 10,
и только потом сможет голить других.
Твоя задача - придумать новую игру, в которую
смогут играть Игроки, то есть объекты, которые
умеют делать то, что описано в интерфейсе Игрок.
Отчёт отправил: 24. Олюшка Выполнено за 30 мин. [Показать отчёт]
Научился: увидела как легко можно менять привила когда написанный код продуманный сразу, реализован с помощью ООП 
Сложности: придумывать свою игру, я как то не очень сильна в играх :( 
Комментарии: можно например чтобы кружек которого заголили стал тоже Голей() и выиграет последний оставшийся неГоля() или может быть чтобы того кого заголили выходил из игры (кружек исчезал) тогда когда останется на поле последний неГоля() и Голя( ) конец игры! Классный урок! Очень нравится что права строчек и можно полностью поменять правила! :) У меня все получилось, Спасибо Евгений за такой клевый урок!  
35 Интерфейс. Создаём новую игру. 00:12:31
111 чел. ★ 4.9 Done
  На этом уроке мы начнём делать новую игру - Вирус.
Смысл игры подробно рассказан на видео.
Цель урока - создать класс GameVirus и
реализовать методы GameViurs(), AddGamer(), Step(), RunAll().
Также придумать и написать словами алгоритм
методов SetNewVirus(Игрок) и FindNewVirus().
Отчёт отправил: 24. Олюшка Выполнено за 40 мин. [Показать отчёт]
Научился: увидела как легко можно пользоваться созданной логикой для разных реализаций, узнала что наследовать классы не всегда лучше 
Сложности: описать реализацию методов SetNewVirus(Игрок) и FindNewVirus() попробовала сделать по аналогии с нашей игрой однако пока не получилось! 
Комментарии: не знаю как их реализовать, я в замешательстве пока! Теперь жду следующего урока чтобы узнать и сделать, увидеть что я не понимаю сейчас! Спасибо за наглядный пример интерефейса, становится более понятней зачем он нам нужен! 
36 Интерфейс. ФИНАЛЬНЫЙ УРОК. 00:13:05
106 чел. ★ 5 Done
  На этом уроке мы допишем последние две функции
и надолго залипнем в экран, наблюдая за новой
игрой для наших кружков, как вирусная эстафета
может быстро передаваться, особенно, когда
игроков очень много.
В комментариях написать свой отзыв об этой серии уроков.

Следующие уроки не обязательны для выполнения.
Я предупредил.

Какой курс ты будешь проходить следующим?
Отчёт отправил: 24. Олюшка Выполнено за 30 мин. [Показать отчёт]
Научился: создавать магию с помощь только изменения какой-то строчки, так легко и просто, и все благодаря написанному интерфейсу!!! 
Сложности: Сложностей не возникло, только очень интересно, игра завораживает и можно смотреть на это чудо очень долго!!! :) 
Комментарии: Спасибо Женя за очень наглядный пример интерфейса, мне так стало более понятно зачем он нам нужен и как можно просто реализовать разные игры с помощью всего одиного интерфейса, а игр у меня уже две и это только для начала, то что придумали!!! Мне еще нужна конечно тренировка и практика, однако с помощью этих классных уроков дальше будет намного проще разбираться и познавать дальше что такое интерфейс и такие мистические буквы ООП!!! Это мой первый платный курс был, и я только рада что начала с него, ни разу не пожалела и всем советую пройти, ведь полученные знания очень дороги и ценны и знаю что дальше мне обязательно пригодятся! :)  
37 Интерфейс. VIP. Квадратики тоже хотят играть. 00:16:23
98 чел. ★ 5 Done
  На этом уроке мы создадим новый класс Box.
Квадратики тоже хотят играть в эту игру,
и просят их научить. Пока они ещё не умеют
ловить, но уже смогут отображаться и передвигаться.

Полезные ссылки для написания функции Поймал:
http://xdan.ru/how-to-check-intersect-two-rectangles.html
http://stackoverflow.com/questions/306316/determine-if-two-rectangles-overlap-each-other
Отчёт отправил: 24. Олюшка Выполнено за 25 мин. [Показать отчёт]
Научился: еще больше работы с классом, создания конструктора и его перегрузка 
Сложности: реализовать самостоятельно метод Поймал() 
Комментарии: очень жду продолжения, очень здорово все получается и вроде не сложно, хотя пока без помощи Евгения ни как! Спасибо что показал как все работает! Двигаюсь дальше!!! :) 
38 Интерфейс. VIP. Пересечение прямоугольников. 00:09:47
95 чел. ★ 5 Done
  На этом уроке мы допишем метод Box.Поймал()
и запустим игру с квадратиками.
Потом попробуем подружить квадратики с кружками,
увидим, что это не так просто, да собственно и не нужно.
Но возможно.
Отчёт отправил: 24. Олюшка Выполнено за 20 мин. [Показать отчёт]
Научился: узнала как совмещать боксики и шарики  
Сложности: сложно не было так как Евгений все показал и рассказал, сама бы не додумалась до такого! 
Комментарии: Ура!!! У меня красотища получилась!!! Это волшебство мне очень нравится и приводит в восторг! Уже хочу чтобы мои кружочки подружились и кирпичиками и вместе начали играть!!! Спасибо мой Волшебник за такую магию и сказку!!! 
39 Интерфейс. VIP. Тяжёлая дружба кругов и квадратов. 00:22:25
84 чел. ★ 5 Done
  На этом уроке мы создалим "универсальный" класс Crosser,
который сможет проверять на столкновение "любых" двух Игроков.
Конечно не любых, а только двух наших Box и Circle.
Это яркий способ, чего стоит избегать в программах.
Потому что тут не добавляется универсальности,
т.к. при добавлении новых объектов придётся
дописывать кучу новых функций на сравнение.

Самостоятельное задание - записать видеообзор
своего проекта и рассказать, что такое Interface.
Отчёт отправил: 24. Олюшка Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: потренировалась в перегрузе методов, прокачала запись обзора, осознания проделанной работы! 
Сложности: честно скрыть волнение, уже и запись сделана а все еще легкая дрожь, что значит давно не тренировался, не записывала видеообзоры! хотя я отлично справилась я довольна своим результатом!!! Я БОЛЬШАЯ Умничка!!! УРА!!!! 
Комментарии: В миллионный раз говорю БОЛЬШОЕ СПАСИБО мой УЧИТЕЛЬ-Волшебник за магию, которую ты делаешь, за мой опыт и знания, за дружбу и поддержку, только благодаря тебе Женя, Мой СЕНСЕЙ я достигла таких шикарных результатов и к тому же и дальше есть желания познавать новое и еще больше расширять опты и становится мастером!!! ❤️ Это великолепный курс, его можно сравнить с вкуснейшим кремом, легкий и воздушней, так как уроки небольшие - легко выполнять и осваивать и очень вкусный, так как знания очень полезные и нужные!!! Я получила отличный опыт, и очень счастлива этому результату и успеху!!! ⛄️ Оля Головина!!! ❤️ ⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨⭐️✨ 
Видеообзор: https://youtu.be/zymcM0uYqaA
  Итого:   39 видеоуроков 7 час. 40 мин.
36 тестов
83 чел. ★ 4.94  
  Финалисты:   lomik,   Роман,   Максим Базуев,   Neverwinter 2,   Владимир,   Никита,   Олюшка,   Валера Луцевич,   Anton Sozykin,   Permitin Alexey,   Артём,   Максим Лапшинов,   Frank,   Archi,   Александр Львович,   Олег Михайлович,   Дмитрий,   Новопашин Владимир,   Евгений,   Сергей Соколов,   Александр Б.,   Максим Саратов,   Алексей В.,   Александр,   Rita,   Станислав,   Алексей Хонин,   Ludmila,   Yefim,   Сергей Зулкарнаев,   Сергей Аникин,   Константин,   Tekashnik,   Артем Посунько,   Андрей Козлов,   kalobyte,   Sergio,   Алексей Малышев,   Александр,   Сергей Стефаненко,   Николай Денисов,   Анатолий,   Денис,   Алексей|BrisK|Кривицкий,   Скозложоп,   chokayes,   Иван Воронин,   Андрей Шевченко,   Chip,   Rise,   Слава,   Саша Авербух,   Александр,   ser2018,   Дмитрий,   Виктор,   Денис,   Oleksandr,   superGrover,   Александр Балбашов,   vip,   Слава,   Sergey Potapov,   Den Andreevich,   Dmitry Sinitsin,   Никита,   Айдар,   Кирилл,   Max,   AlliZzeN,   no name,   Дмитрий,   Владимир,   ES35,   Anatoli,   Виталий,   Татьяна,   Vdonsk,   MaxB,   Булат,   Tim,   Tom,   Антон .

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





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.


Научился: Научился писать методы SetNewVirus(Игрoк) и FindNewVirus() и запускать игру по новым правилам.
Трудности: Пока все было понятно.
Большое спасибо! Отзыв: Курс «Теория объектно-ориентированного программирования на практике» в Школе программиста представлял для меня большой интерес. Курс состоит из двух основных частей. В первой части данного курса был очень подробно рассмотрен процесс создания и изменения объектов без использования и с использованием ООП. Преобразование проекта первого типа во второй было весьма непростым, но в результате преобразования работа с различными объектами данного типа (их создание и изменение) значительно облегчилась. Во второй части была не менее подробно рассмотрена работа с интерфейсом и было показано, как можно использовать объект типа Интерфейс для практической реализации объектно-ориентированного подхода. Как всегда, особая благодарность руководителю проекта Школа программирования Евгению Витольдовичу Волосатову, который подобрал такие интересные задачи и все подробно объясняет. Некоторые сложные для меня вопросы программирования также приходится изучать дополнительно – с помощью интернета и специальной литературы. Мое имя и фотография имеются в моем профиле на портале Школы. В целях дальнейшего развития данного курса предлагаю показать, как можно было бы написать программу работы со снеговиками с нуля, сразу с использованием ООП.


Научился: Мне очень понравилась как быстро сменились игра с GameCatch на GameVirus , мне кажется что серия уроков об интерфейсах демонстрирует некий модульно-конструкторный подход