Обучение языку 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 Demo
  На этом уроке мы создадим форму,
немножко её оформим, выберем для неё иконку.
Далее напишем функцию, которая рисует на экране две линии.

Спрайт - это графический объект, состоящий из линий и кругов.
На этом уроке мы создадим графический редактор для спрайтов.
Этот редактор мы будем использовать для создания «героев» игр.
В каждой игре у нас будет несколько спрайтов, которые будут
создаваться, двигаться, исчезать по правилам той или иной игры.
2 Спрайт. Структура для линии 00:11:07
96 чел. ★ 4.9 Demo
  На этом уроке мы создадим структуру для хранения линий,
массив палитры цветов и массив линий.
И перепишем программу, чтобы она это всё выводило на экран.
3 Спрайт. Класс для графики 00:09:32
88 чел. ★ 5 Demo
  На этом уроке мы создадим класс Graph,
куда перенесём всё хозяйство для рисования:
структуру, графику, картинку, массив палитры.
После этого создадим методы Draw() для рисования линий.
4 Спрайт. Класс для Спрайта 00:14:10
68 чел. ★ 5 $
  На этом уроке мы создадим класс Sprite,
в котором будут храниться все линии каждого спрайта.
В этом классе будут методы для добавления линий,
а также, самое главное, для сохранения
и загрузки Спрайта из XML файла.
5 Спрайт. Рисуем линии мышкой 00:22:31
66 чел. ★ 5 $
  На этом уроке мы начнём создавать редактор, наконец-таки.
Использую мышку можно будет рисовать линии,
которые будут добавляться в наш спрайт.
6 Спрайт. Панель инструментов 00:19:00
66 чел. ★ 5 $
  На этом уроке мы создадим панель инструментов с кнопками
для переключения цвета, очистки экрана, отмены последнего действия.
7 Спрайт. Сериализация объекта 00:18:23
64 чел. ★ 4.9 $
  На этом уроке мы научимся сохранять и загружать объекты,
используя технологию сериализации и десериализации.
8 Аполлон. Главные герои 00:07:08
90 чел. ★ 4.7 Demo
  На этом уроке мы озвучим правила игры Аполлон.
Выясним, какие у нас будут главные герои.
Твоё самостоятельное задание -
нарисовать на бумаге внешний вид игры
со всеми главными героями.
Как ты это себе представляешь.
9 Аполлон. Законы физики 00:26:47
87 чел. ★ 5 Demo
  Корабль Аполлон прилуняется на Луну.
На этом уроке мы рассмотрим упрощённую
физическую модель этого процесса и
выпишем все параметры и все формулы,
которые будут управлять этим процессом.
10 Аполлон. Плавное прилунение 00:55:16
76 чел. ★ 5 Demo
  На этом уроке мы допишем игру Аполлон.
Свяжем класс логики с интерфейсом.
Сделаем управление двигателем с помощью мышки.
Добавим таймер, функцию отображения корабля.
А также сообщение о конце игры и перезапуск игры.
11 Спрайт. Рисуем Аполлона 00:14:10
58 чел. ★ 4.9 $
  На этом уроке мы переделаем программу,
чтобы удобно было рисовать ломанные линии.
Добавим фоновый рисунок для его обведения.
И в конце концов нарисуем Землю, вид из Космоса.

Задание: Научить программу рисовать ломанные и
нарисовать Землю, поверхность Луны, Ракету,
Работающие двигатели, маленькую звёздочку.
12 Аполлон. Graph и Sprite на Луне 00:19:58
54 чел. ★ 5 $
  На этом уроке мы внедрим созданные спрайты в написанную игрушку.
Для этого мы добавим проект два класса из прошлых уроков -
класс Graph и Sprite. Затем напишем метод загрузки всех спрайтов,
и выведем один из них на экран.

Задание
наладить работу программы с предыдущими классами
и уметь загружать подготовленные спрайты.
13 Аполлон. Финальное прилунение 00:29:58
52 чел. ★ 5 $
  На этом уроке мы изменим метод Draw таким образом,
чтобы он принимал координаты размещения спрайта и его масштаб.
Далее, напишем методы для отображения всех спрайтов.
Подгоним значения, чтобы всё отображалось красиво.
И запустим наконец-таки нашу красочную игру
с посадкой корабля Аполлон на Луну. Ура!
14 Полуфинальный урок 00:23:23
40 чел. ★ 4.9 $
  Задание:
Записать видео обзор игры Аполлон.
15 Домино. Правила игры 00:20:55
55 чел. ★ 4.9 Demo
  Мы начинаем создание Домино-Пасьянса.
Костяшки домино перемешиваются и выстраиваются
на столе в пирамидку, вверху одна костяшка,
внизу семь штук. Верхние и нижние открываются.
16 Домино. Перемешиваем плашки 00:22:49
52 чел. ★ 4.9 $
  На этом уроке мы напишем метод Start (),
который перемешает вся плашки домино.
Далее, продумаем список всех необходимых
методов для класса Domino и реализуем
самые тривиальные из них.
17 Домино. Динамическая пирамида 00:21:39
51 чел. ★ 4.9 $
  На этом уроке мы нарисуем пирамидку из доминошек.
Для отображения каждой плашки используется Label.
Label'ы мы будем создавать динамически, как в сказке.
18 Домино. Делегаты отображения 00:20:38
49 чел. ★ 5 $
  На этому уроке мы свяжем два класса -
FormDomino и Domino через механизм делегатов.
Наш делегат будет отвечать за отображение плашки.
19 Домино. Выбираем и убираем 00:27:16
49 чел. ★ 5 $
  На этом уроке мы допишем метод отображения плашки.
Затем напишем важный метод OpenFreePlates(),
чтобы после убирания старых плашек новые открывались.
Закончим урок обработкой клика по каждой плашке -
будем отмечать выделенные и убирать их, если сумма равна 12.
20 Домино. Ура! Победа! 00:19:12
49 чел. ★ 5 $
  На этом уроке мы допишем пасьянс из Домино.
Напишем методы IsWinner() и IsLooser().
Добавим метки для оповещения о результате игры
и попытаемся наконец-таки разложить этот пасьянс.
Не забудьте добавить эту программу в своё портфолио!

Внимание! В конце видео можно посмотреть на весь код целиком.
21 Спрайт. Рисуем плашки 00:25:50
44 чел. ★ 5 $
  На этом уроке мы будем рисовать плашки домино.
Каждая состоит из двух частей, отдельно
нарисуем восемь левых частей и столько же правых.
Почему восемь? От пустышки до шестёрки, и оборотная сторона.
22 Домино. Отображение плашки 00:26:38
43 чел. ★ 5 $
  На этом уроке мы откроем проект Домино,
добавим в него два класса - Graph и Sprite,
и создадим метод для рисования плашки домино.
Нам придётся, как и в Аполлоне, доработать методы Draw().
В конце урока мы загрузим файлы спрайтов в ресурсы
и научим статический метод Load() загружать их
их массива байт, из строки символов.
Это добавление делать по желанию.
23 Домино. Двойной спрайт 00:29:27
42 чел. ★ 5 $
  На этом уроке мы создадим класс SpriteDomino, в котором
будем хранить обе части плашки домино в виде спрайта.
В этом классе будет конструктор и методы Open() / Hide(),
которые будут пересоздавать спрайты по мере необходимости.
Дальше нужно будет в классе Graph написать метод Draw()
для рисования нашей доминошки и убедиться, что это всё работает.
24 Домино. Анимация спрайта 00:17:36
42 чел. ★ 5 $
  На этом уроке мы создадим анимацию спрайтов.
Для этого нам понадобится таймер,
несколько переменных, и возможность
стирания нарисованных спрайтов.
25 Домино. Подъём переворотом 00:28:16
42 чел. ★ 5 $
  На этом уроке мы реализуем ещё два вида анимации.
1. Выбор плашки, она будет "дрожать" на месте
2. Переворот плашки, она будет сжиматься и разжиматься.
26 Домино. Базовый класс Анимаций 00:21:37
42 чел. ★ 5 $
  На этом уроке мы наведём порядок в нашем проекте.
Квинтессенцию анимации оформим отдельным классом - Animate.
Уберём всё лишнее из класса Graph и основного модуля.
И сделаем, чтобы всё заработало -
пока статичное отображение спрайта через экземпляр класса Animate.
27 Домино. Три наследника Аниматора 00:30:26
42 чел. ★ 5 $
  На этом уроке мы реализуем все способы анимации
через созадние классов наследников от Animate.
У нас будет три класса: AnimateMove, AnimateMark и AnimateTurn.
28 Домино. Пирамида из анимашек 00:15:05
42 чел. ★ 5 $
  На этом уроке мы добавим ещё парочку
виртуальных функций в базовый класс Animate,
чтобы их можно было вызывать без явного указания типа.

Но самое главное - мы создадим матрицу "анимашек",
инициализируем её экземплярами базового класса
и выведем это всё на экран в виде пирамиды.
29 Домино. Rolling Stones 00:19:29
41 чел. ★ 5 $
  На этом уроке мы сделаем анимацию раскладывания всех плашек домино на столе.
Для этого напишем метод RollDomino(), а ещё нам потребуется отлавливать
момент, когда все доминошки уже выложены на стол. Для этого мы добавим
поле string mode, чтобы в таймере отловить этот момент.
30 Домино. Наведение порядка 00:20:25
41 чел. ★ 5 $
  На этом уроке мы наведём порядок на форме,
избавимся от наследия Label [,], уберём ненужные методы.
Потом, на 10-ой минуте мы приступим к открытию плашек
на первом и последнем ряду пирамиды.
31 Домино. Финальный аккорд 00:22:58
40 чел. ★ 5 $
  На этом уроке мы научим программу выбирать
плашки по щелчку мышки, убирать с экрана верные пары,
и сыграем несколько раз до полного успеха :)
32 ФИНАЛЬНЫЙ урок 00:23:23
33 чел. ★ 5 $
  Задание:
Записать видео обзор игры Пасьянс из домино.
33 VIP урок. Телефон по TCP/IP протоколу 00:47:44
28 чел. ★ 5 $
  На этом видеоуроке мы создадим три класса, которые удобно
использовать для передачи данных между двумя компьютерами.
  Итого:   33 видеоурока 12 час. 26 мин.
28 чел. ★ 4.97  
  Финалисты:   Олюшка,   Руслан,   Екатерина,   Иван,   Андрей Поляков,   Дмитрий,   Елена,   Ильшат,   Фомичева Наталья,   Александр,   Владимир,   Никита,   Сергей Сергеевич,   Артём,   Мариша ,   Михаил Ермишин,   Максим Лапшинов,   Максим,   Электрон,   Tekashnik,   Новопашин Владимир,   Dimon,   chokayes,   Николай Денисов,   Денис,   Yefim,   Кирилл,   Anatoli .

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





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

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

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

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


Научился: Работать со спрайтами (продолжаю учиться)
Трудности: Изменить существующие методы с учетом использования спрайтов.
Решил вывести спрайты вместо цифр на лэйблах. Создал методы ShowPicture (делегат), CreatePicture, InitPictures. Как видно на скриншоте, спрайты выводятся, но игра пока не работает. Буду переделывать метод ShowPlate.


Научился: рисовать спрайт по шаблону из несольких частей
Ну не знаю, я поместил зум в класс с домино и получается, что он уже вместе с экземпляром передаётся