Обучение языку c#

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

основатель — Волосатов Евгений Витольдович

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

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

После взноса  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 Спрайт. Первая форма 00:13:27
103 чел. ★ 4.9 Done
  На этом уроке мы создадим форму,
немножко её оформим, выберем для неё иконку.
Далее напишем функцию, которая рисует на экране две линии.

Спрайт - это графический объект, состоящий из линий и кругов.
На этом уроке мы создадим графический редактор для спрайтов.
Этот редактор мы будем использовать для создания «героев» игр.
В каждой игре у нас будет несколько спрайтов, которые будут
создаваться, двигаться, исчезать по правилам той или иной игры.

Отчёт отправил: 9752. chokayes Выполнено за 5 час. 31 мин. [Показать отчёт]
Научился: для рисования нам надо 4 элемента: огонь, воздух, вода и земля. ой, Bitmap, Graphics, Pen and PictureBox 
Сложности: -- 
2 Спрайт. Структура для линии 00:11:07
96 чел. ★ 4.9 Done
  На этом уроке мы создадим структуру для хранения линий,
массив палитры цветов и массив линий.
И перепишем программу, чтобы она это всё выводило на экран.
Отчёт отправил: 9752. chokayes Выполнено за 29 мин. [Показать отчёт]
Научился: может разнообразить тему используя Processing? 
Сложности: -- 
3 Спрайт. Класс для графики 00:09:32
88 чел. ★ 5 Done
  На этом уроке мы создадим класс Graph,
куда перенесём всё хозяйство для рисования:
структуру, графику, картинку, массив палитры.
После этого создадим методы Draw() для рисования линий.
Отчёт отправил: 9752. chokayes Выполнено за 39 мин. [Показать отчёт]
Научился: все, что относится к рисованию перенесли в класс Graph. тема переклткается с курсом по Теории ООП 
Сложности: -- 
4 Спрайт. Класс для Спрайта 00:14:10
68 чел. ★ 5 Done
  На этом уроке мы создадим класс Sprite,
в котором будут храниться все линии каждого спрайта.
В этом классе будут методы для добавления линий,
а также, самое главное, для сохранения
и загрузки Спрайта из XML файла.
Отчёт отправил: 9752. chokayes Выполнено за 15 час. 36 мин. [Показать отчёт]
Научился: классный урок. все по классике, в рамках ООП 
5 Спрайт. Рисуем линии мышкой 00:22:31
66 чел. ★ 5 Done
  На этом уроке мы начнём создавать редактор, наконец-таки.
Использую мышку можно будет рисовать линии,
которые будут добавляться в наш спрайт.
Отчёт отправил: 9752. chokayes Выполнено за 15 час. 55 мин. [Показать отчёт]
Научился: Прикольно. От примитивных спрайтов до Unity ) Надо было еще ластик, сделать.  
6 Спрайт. Панель инструментов 00:19:00
66 чел. ★ 5 Done
  На этом уроке мы создадим панель инструментов с кнопками
для переключения цвета, очистки экрана, отмены последнего действия.
Отчёт отправил: 9752. chokayes Выполнено за 14 час. 2 мин. [Показать отчёт]
Научился: Переделал метод отрисовки, чтобы рисовал за мышкой. Добавил компонент на форму, который показывает текущий цвет и сразу же столкнулся с тем. что по идее мы неправильно работаем с цветами, их у нас всего пять и они  у нас выражены целыми числами, хочу переделать на Color, тогда не будет проблем полную палитру использовать, пока не стал заморачиваться. 
7 Спрайт. Сериализация объекта 00:18:23
64 чел. ★ 4.9 Done
  На этом уроке мы научимся сохранять и загружать объекты,
используя технологию сериализации и десериализации.
Отчёт отправил: 9752. chokayes Выполнено за 17 час. 29 мин. [Показать отчёт]
Научился: научился сериализации, десериализации XML 
8 Аполлон. Главные герои 00:07:08
90 чел. ★ 4.7 Done
  На этом уроке мы озвучим правила игры Аполлон.
Выясним, какие у нас будут главные герои.
Твоё самостоятельное задание -
нарисовать на бумаге внешний вид игры
со всеми главными героями.
Как ты это себе представляешь.
Отчёт отправил: 9752. chokayes Выполнено за 4 час. 55 мин. [Показать отчёт]
Научился: -- 
Сложности: Нарисовать Землю. 
9 Аполлон. Законы физики 00:26:47
87 чел. ★ 5 Done
  Корабль Аполлон прилуняется на Луну.
На этом уроке мы рассмотрим упрощённую
физическую модель этого процесса и
выпишем все параметры и все формулы,
которые будут управлять этим процессом.
Отчёт отправил: 9752. chokayes Выполнено за 28 мин. [Показать отчёт]
Научился: -- 
Сложности: -- 
10 Аполлон. Плавное прилунение 00:55:16
76 чел. ★ 5 Done
  На этом уроке мы допишем игру Аполлон.
Свяжем класс логики с интерфейсом.
Сделаем управление двигателем с помощью мышки.
Добавим таймер, функцию отображения корабля.
А также сообщение о конце игры и перезапуск игры.
Отчёт отправил: 9752. chokayes Выполнено за 1 час. 0 мин. [Показать отчёт]
Научился: -- 
Сложности: -- 
11 Спрайт. Рисуем Аполлона 00:14:10
58 чел. ★ 4.9 Done
  На этом уроке мы переделаем программу,
чтобы удобно было рисовать ломанные линии.
Добавим фоновый рисунок для его обведения.
И в конце концов нарисуем Землю, вид из Космоса.

Задание: Научить программу рисовать ломанные и
нарисовать Землю, поверхность Луны, Ракету,
Работающие двигатели, маленькую звёздочку.
Отчёт отправил: 9752. chokayes Выполнено за 1 час. 41 мин. [Показать отчёт]
Научился: Оказывается просто поменяв местами цвета можно инвертировать картинку, что я и сделал. Мысль пришла когда мы выключили белый цвет, назначив ему прозрачность. Еще появилась идея создать "'эскизный цвет", потом сделать функцию, которая будет удалять его, или вообще отдельно какой-нибудь цвет, или делать его прозрачным, т.е. у нас как бы появляется слой, который мы можем включать, выключать. ) 
Сложности: сделал скриншот программы, а в программе спрайт не сохранил, закрыл программу. ( 
12 Аполлон. Graph и Sprite на Луне 00:19:58
54 чел. ★ 5 Done
  На этом уроке мы внедрим созданные спрайты в написанную игрушку.
Для этого мы добавим проект два класса из прошлых уроков -
класс Graph и Sprite. Затем напишем метод загрузки всех спрайтов,
и выведем один из них на экран.

Задание
наладить работу программы с предыдущими классами
и уметь загружать подготовленные спрайты.
Отчёт отправил: 9752. chokayes Выполнено за 19 час. 48 мин. [Показать отчёт]
Научился: произвели импорт классов из одной программы в другой. загурзили спрайт Луны 
13 Аполлон. Финальное прилунение 00:29:58
52 чел. ★ 5 Done
  На этом уроке мы изменим метод Draw таким образом,
чтобы он принимал координаты размещения спрайта и его масштаб.
Далее, напишем методы для отображения всех спрайтов.
Подгоним значения, чтобы всё отображалось красиво.
И запустим наконец-таки нашу красочную игру
с посадкой корабля Аполлон на Луну. Ура!
Отчёт отправил: 9752. chokayes Выполнено за 7 час. 44 мин. [Показать отчёт]
Научился: Вывели все спрайты. Статичные спрайты можно было одним сделать. А так все супер! 
14 Полуфинальный урок 00:23:23
40 чел. ★ 4.9 Done
  Задание:
Записать видео обзор игры Аполлон.

Отчёт отправил: 9752. chokayes Выполнено за 20 час. 0 мин. [Показать отчёт]
Научился: надо учиться покороче видео делать.  
Сложности: Забыл поставить HD для видео, поэтому качество не оч. 
Видеообзор: Tjgr3lmI4Sw
15 Домино. Правила игры 00:20:55
55 чел. ★ 4.9 Done
  Мы начинаем создание Домино-Пасьянса.
Костяшки домино перемешиваются и выстраиваются
на столе в пирамидку, вверху одна костяшка,
внизу семь штук. Верхние и нижние открываются.

Отчёт отправил: 9752. chokayes Выполнено за 1 день 4 мин. [Показать отчёт]
Научился: Так как домино нет. Решил его сделать программно. При инициализации формы создаем динамически 28 picturebox (это мы уже проходили) далее подгружаем пустую плашку в pictureBox и рисуем эллипсами кружочки. ) Разместил плашки в 4 ряда, код тоже позаимствовал из виселки, только там мы 33  кнопочки размещеали в 3 ряда. еще сделал функцию как мы делали с java, чтобы можно было сохранить форму в виде картинки, загуглил. Все сохраняет. ) Хотел распечатать, вырезать и поиграть, но до этото не дошел. ) Так что пройденные уроки пригодились еще как. 
Сложности: Пришлось повозиться с Graphics, сам затупил. Приобрел ценный опыт! Всегда делать картинки под размер контролла. Не надеяться на zoom и т.п. у меня из-за этого были проблемы. Вроде рисую в границах, а на самом деле, нет. Так как картинка больше чем PictureBox. Все в общем рисовало вкривь и вкось. Я весь код свой изуродовал пока искал в чем проблема. ))   
16 Домино. Перемешиваем плашки 00:22:49
52 чел. ★ 4.9 Done
  На этом уроке мы напишем метод Start (),
который перемешает вся плашки домино.
Далее, продумаем список всех необходимых
методов для класса Domino и реализуем
самые тривиальные из них.
Отчёт отправил: 9752. chokayes Выполнено за 17 час. 57 мин. [Показать отчёт]
Научился: Реализовали рандомное перемешивание плашек. Согласен с тем, что сразу все нельзя предусмотреть.  
17 Домино. Динамическая пирамида 00:21:39
51 чел. ★ 4.9 Done
  На этом уроке мы нарисуем пирамидку из доминошек.
Для отображения каждой плашки используется Label.
Label'ы мы будем создавать динамически, как в сказке.
Отчёт отправил: 9752. chokayes Выполнено за 15 час. 8 мин. [Показать отчёт]
Научился: Так как у меня уже был ранее создан метод генерации костяшек  на основе пустой плашки,  просто использовал его. 
18 Домино. Делегаты отображения 00:20:38
49 чел. ★ 5 Done
  На этому уроке мы свяжем два класса -
FormDomino и Domino через механизм делегатов.
Наш делегат будет отвечать за отображение плашки.
Отчёт отправил: 9752. chokayes Выполнено за 15 час. 46 мин. [Показать отчёт]
Научился: Делегаты - это сила!  
19 Домино. Выбираем и убираем 00:27:16
49 чел. ★ 5 Done
  На этом уроке мы допишем метод отображения плашки.
Затем напишем важный метод OpenFreePlates(),
чтобы после убирания старых плашек новые открывались.
Закончим урок обработкой клика по каждой плашке -
будем отмечать выделенные и убирать их, если сумма равна 12.
Отчёт отправил: 9752. chokayes Выполнено за 7 час. 59 мин. [Показать отчёт]
Научился: При выделении плашки меняю цвет кружочков. Еще сделал, чтобы можно было снять выделение. 
20 Домино. Ура! Победа! 00:19:12
49 чел. ★ 5 Done
  На этом уроке мы допишем пасьянс из Домино.
Напишем методы IsWinner() и IsLooser().
Добавим метки для оповещения о результате игры
и попытаемся наконец-таки разложить этот пасьянс.
Не забудьте добавить эту программу в своё портфолио!

Внимание! В конце видео можно посмотреть на весь код целиком.
Отчёт отправил: 9752. chokayes Выполнено за 14 час. 21 мин. [Показать отчёт]
Научился: Добили программу, добавив действия при проигрыше и выигрыше. 
21 Спрайт. Рисуем плашки 00:25:50
44 чел. ★ 5 Done
  На этом уроке мы будем рисовать плашки домино.
Каждая состоит из двух частей, отдельно
нарисуем восемь левых частей и столько же правых.
Почему восемь? От пустышки до шестёрки, и оборотная сторона.
Отчёт отправил: 9752. chokayes Выполнено за 23 час. 30 мин. [Показать отчёт]
Научился: Для того, чтобы нарисовать плашки добавил возможность рисовать чисто горизонтальные линии и вертикальные. Пока сойдет, дальше посмотрим. 
22 Домино. Отображение плашки 00:26:38
43 чел. ★ 5 Done
  На этом уроке мы откроем проект Домино,
добавим в него два класса - Graph и Sprite,
и создадим метод для рисования плашки домино.
Нам придётся, как и в Аполлоне, доработать методы Draw().
В конце урока мы загрузим файлы спрайтов в ресурсы
и научим статический метод Load() загружать их
их массива байт, из строки символов.
Это добавление делать по желанию.
Отчёт отправил: 9752. chokayes Выполнено за 22 час. 49 мин. [Показать отчёт]
Научился: Внес некоторые изменения в программу для рисования спрайтов. Много  изменений внес в классы Sprite и Graph. Сделал выбор цвета из системных цветов- 48шт. Столкнулся с проблемой сериализации вложенных объектов в xml. Т.е. цвет не сохранялся в Xml через Color.Цвет. Не стал заморачиваться, а сделал через сохранение свойства Name для конкретного цвета.  Сделал возможность копирования последней нарисованной линии, изменения ее толщины и также ее перемещения по  нажатию кнопок вверх, вниз, вправо, влево, что очень помогло при рисовании. По сути можно любую нарисованную линию отредактировать. Добавил отдельные режимы рисования строго горизонтальных и вертикальных линий. Была мысля еще реализовать вращение, но пока не стал делать. Еще добавил у свойства линий поля offsetX, offsetY, через которые можно сдвигать линии относительно исходной, т.е. применить клонирование спрайтов. Добавил метод зеракльной отрисовки спрайтов.  
23 Домино. Двойной спрайт 00:29:27
42 чел. ★ 5 Done
  На этом уроке мы создадим класс SpriteDomino, в котором
будем хранить обе части плашки домино в виде спрайта.
В этом классе будет конструктор и методы Open() / Hide(),
которые будут пересоздавать спрайты по мере необходимости.
Дальше нужно будет в классе Graph написать метод Draw()
для рисования нашей доминошки и убедиться, что это всё работает.
Отчёт отправил: 9752. chokayes Выполнено за 19 час. 13 мин. [Показать отчёт]
Научился: Создали класс SpriteDomino. Написали методы по по открытию, закрытию плашек. Интересный подход.  Интересно узнать ход мыслей другого человека.  ) 
Сложности: не успел сдать отчет и опубликовать ссылку из-за глюков с Инетом  
24 Домино. Анимация спрайта 00:17:36
42 чел. ★ 5 Done
  На этом уроке мы создадим анимацию спрайтов.
Для этого нам понадобится таймер,
несколько переменных, и возможность
стирания нарисованных спрайтов.
Отчёт отправил: 9752. chokayes Выполнено за 19 час. 55 мин. [Показать отчёт]
Научился: сделали анимацию, все круто 
25 Домино. Подъём переворотом 00:28:16
42 чел. ★ 5 Done
  На этом уроке мы реализуем ещё два вида анимации.
1. Выбор плашки, она будет "дрожать" на месте
2. Переворот плашки, она будет сжиматься и разжиматься.
Отчёт отправил: 9752. chokayes Выполнено за 10 час. 32 мин. [Показать отчёт]
Научился: Классная анимация. Особенно переворот плашки. Ну и дрожание плашки тоже супер. ) 
26 Домино. Базовый класс Анимаций 00:21:37
42 чел. ★ 5 Done
  На этом уроке мы наведём порядок в нашем проекте.
Квинтессенцию анимации оформим отдельным классом - Animate.
Уберём всё лишнее из класса Graph и основного модуля.
И сделаем, чтобы всё заработало -
пока статичное отображение спрайта через экземпляр класса Animate.
Отчёт отправил: 9752. chokayes Выполнено за 14 час. 26 мин. [Показать отчёт]
Научился: думаю стоило бы класс Animate объявить абстрактным и пустой виртуальный метод step, тоже сделать абстрактным 
27 Домино. Три наследника Аниматора 00:30:26
42 чел. ★ 5 Done
  На этом уроке мы реализуем все способы анимации
через созадние классов наследников от Animate.
У нас будет три класса: AnimateMove, AnimateMark и AnimateTurn.
Отчёт отправил: 9752. chokayes Выполнено за 15 час. 43 мин. [Показать отчёт]
Научился: Создали наследников для аниматора. Полиморфизм - классная штука. Позволяет избежать разрастания кода в лапшу, а также достигать слабой связности.  
28 Домино. Пирамида из анимашек 00:15:05
42 чел. ★ 5 Done
  На этом уроке мы добавим ещё парочку
виртуальных функций в базовый класс Animate,
чтобы их можно было вызывать без явного указания типа.

Но самое главное - мы создадим матрицу "анимашек",
инициализируем её экземплярами базового класса
и выведем это всё на экран в виде пирамиды.
Отчёт отправил: 9752. chokayes Выполнено за 15 час. 29 мин. [Показать отчёт]
Научился: после проождения курса попробую написать через абстрактные методы. 
29 Домино. Rolling Stones 00:19:29
41 чел. ★ 5 Done
  На этом уроке мы сделаем анимацию раскладывания всех плашек домино на столе.
Для этого напишем метод RollDomino(), а ещё нам потребуется отлавливать
момент, когда все доминошки уже выложены на стол. Для этого мы добавим
поле string mode, чтобы в таймере отловить этот момент.
Отчёт отправил: 9752. chokayes Выполнено за 19 час. 27 мин. [Показать отчёт]
Научился: Анимация - это красиво. Настоящие спецэффекты. Можно даже мульты рисовать. ) Сделал, чтобы плашки заезжали с бочины. Все супер мне нравится, хоть  немного и затянулся курс. Еще поменял цвет плашки. 
30 Домино. Наведение порядка 00:20:25
41 чел. ★ 5 Done
  На этом уроке мы наведём порядок на форме,
избавимся от наследия Label [,], уберём ненужные методы.
Потом, на 10-ой минуте мы приступим к открытию плашек
на первом и последнем ряду пирамиды.
Отчёт отправил: 9752. chokayes Выполнено за 49 мин. [Показать отчёт]
Научился: Рефакторинг кода всегда был проблемой для меня. Написав программу было трудно себя заставить трогать работающий код, сейчас уже привыкаю по-немногу. ) Немного подтормаживает вся эта анимация со спрайтами.  
31 Домино. Финальный аккорд 00:22:58
40 чел. ★ 5 Done
  На этом уроке мы научим программу выбирать
плашки по щелчку мышки, убирать с экрана верные пары,
и сыграем несколько раз до полного успеха :)
Отчёт отправил: 9752. chokayes Выполнено за 1 день 19 час. 21 мин. [Показать отчёт]
Научился: Курс по домино, супер! Мне все понравилось. Его тоже стоит на Unity забацать, но не сейчас! Не охота такой курс под гребенку, как все другие. Хотелось бы более профессионально, чтобы сделали с дианическим созданием, оптимизацией спрайтов в Unity. 
32 ФИНАЛЬНЫЙ урок 00:23:23
33 чел. ★ 5 Done
  Задание:
Записать видео обзор игры Пасьянс из домино.

Отчёт отправил: 9752. chokayes Выполнено за 1 день 3 мин. [Показать отчёт]
Научился: При создании домино еще больше проникся мощью ООП и полиморфизма. Получилась отличная площадка для оттачивания навыков рефакторинга. Курс в целом отличный! Все понравилось. 
Видеообзор: h4uhoVrBfok
33 VIP урок. Телефон по TCP/IP протоколу 00:47:44
28 чел. ★ 5 Done
  На этом видеоуроке мы создадим три класса, которые удобно
использовать для передачи данных между двумя компьютерами.
Отчёт отправил: 9752. chokayes Выполнено за 20 час. 2 мин. [Показать отчёт]
Научился: Уже проходил данный урок. Тема интересная и полезная. 
  Итого:   33 видеоурока 12 час. 26 мин.
28 чел. ★ 4.97  
  Финалисты:   Олюшка,   Руслан,   Екатерина,   Иван,   Андрей Поляков,   Дмитрий,   Елена,   Ильшат,   Фомичева Наталья,   Александр,   Владимир,   Никита,   Сергей Сергеевич,   Артём,   Мариша ,   Михаил Ермишин,   Максим Лапшинов,   Максим,   Электрон,   Tekashnik,   Новопашин Владимир,   Dimon,   chokayes,   Николай Денисов,   Денис,   Yefim,   Кирилл,   Anatoli .

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





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

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

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

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


Научился: Создавать собственную игру по аналогии с уроками
Трудности: Создать свою версию пасьянса "Домино"
Замечательный курс, очень интересный. В итоге у меня по второй половине курса получилось 3 программы. Подробнее - в моем видеоотчете.


Научился: Курс "Игры со спрайтами" оказался для меня информационно насыщенным, интересным и, главное, очень полезным. По ходу курса необходимо было представить промежуточный видео обзор. Там я прелставил свои доработки по редактору спрайтов: https://www.youtube.com/watch?time_continue=3&v=CFEM7WxGrC0 Далее я продолжил доработки и в настоящее время интерфейс редактора можно увидеть на скриншоте: Что касается обзора по игре с Домино, то я хотел бы его предстваить после реализации своих идей. А на это протребуется некоторое время. Большое срасибо Евгению Витольдовичу за великолепный курс!