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:22:00
66 чел. ★ 4.9 Free
  Мы начинаем создание многопользовательской игры "Морской Бой".
В игру можно будет играть одновременно четырём участникам.
Будет реализована клиентская часть с графическим интерфейсом на C#.
Будет разработан протокол общения клиентских программ с сервером.
Будет спроектирована и создана серверная база данных на MySQL.
Будет написана серверная часть отработки протокола на PHP.
Будет создан клиент-класс отработки протокола на C#.
Будет реализована анимация всех событий в игре.
На этом уроке рассказано о структуре проекта.
 
6696. Владимир Борисенко
2146. Иван
6925. Артём
7788. Ксения
2 Интерфейс - Первый кораблик 00:32:33
58 чел. ★ 4.9 Demo
  На этом уроке мы начнём создание проекта -
создадим проект, настроим форму, прикрепим иконку.
На самой форме разместим главную картинку - pictureMain.
А ещё нарисуем 4 картинки и добавим их в ресурсы проекта.
Далее создадим графику, подготовим картинки
и научимся их выводить на основную картинку.
Под конец урока сделаем размещение корабликов по щелчку мышки.
 
6614. Александр
24. Олюшка
24. Олюшка
1967. Дмитрий
3 Интерфейс - А на море корабли 00:22:26
56 чел. ★ 4.9 Demo
  На этом уроке мы нарисуем море с кораблями.
Пока у нас не будет матриц, размещение объектов будет случайным.
В конце урока напишем алгоритм позиционирования курсора мышки
над нашим морем и сделаем размещение "ударов" по морю.
 
1967. Дмитрий
17255. Слава
1704. Бендер
6696. Владимир Борисенко
4 Графика - Карта Морского флота 00:31:14
45 чел. ★ 5 Demo
  На этом уроке мы создадим карту морского флота.
Это будет двумерный массив, в каждой клетке
которого записано одно из четырёх значений.
Мы напишем алгоритм размещения кораблей
и сделаем отображение карты на экране.
 
6409. Виктор
9913. vip
14740. volld
6282. Михаил
5 Графика - Выстрелы по Кораблям 00:14:31
44 чел. ★ 5 Demo
  На этом уроке мы наконец-таки сможем немножко поиграть
с компьютером и потопить весь компьютерный флот! :)
Сначала мы уберём вывод кораблей на экран,
потом переделаем функцию обработки клика мышки.
Добавим проверку точности удара и вывода результата.
 
5419. Роман
6289. Екатерина
6289. Екатерина
6620. Юрий
6 Графика - Рефакторинг 00:26:11
42 чел. ★ 4.9 Demo
  На этом уроке мы займёмся рефакторингом кода.
Создадим класс Graph, в который перенесём все
операции, связанные с графикой.
Код станет чище, понятней, хотя придётся
повозиться с его оптимизацией.
 
1704. Бендер
6632. Волнухин Владимир
6409. Виктор
6203. Николай Миролюбов
7 Анимация - Полёт снаряда 00:08:33
38 чел. ★ 4.8 $
  На этом уроке мы составим список всех анимаций, которые будут в нашей игре. Твоя задача - нарисовать все кадры полёта снаряда.
 
11589. Yefim
5029. Андрей Поляков
4342. Алекс
6614. Александр
8 Анимация - Отображение кадров 00:31:33
38 чел. ★ 4.9 $
  На этом уроке мы создадим первую анимацию в нашем проекте.
Это будет летящий снаряд. Мы рассмотрим несколько способов его отображения, а также добавим его перемещение.
 
5419. Роман
5419. Роман
6289. Екатерина
5407. Дмитрий 199
9 Анимация - Полёт по таймеру 00:28:19
37 чел. ★ 4.9 $
  На этом уроке мы добавим таймер и реализуем полёт снаряда через функцию его события.
Для этого в функцию таймера нужно будет разместить внутренности цикла,
а также добавить проверки на начало и окончание полёта снаряда.
Потом мы оформим полёт снаряда в ту клетку моря, по которой был щелчёк мышки.
 
17255. Слава
6289. Екатерина
6289. Екатерина
6282. Михаил
10 Архитектура - Перезагрузка проекта 00:24:35
37 чел. ★ 5 $
  На этом уроке мы начнём всё заново.
Но уже на другом, качественно новом уровне.
Проработаем архитектуру будущей программы.
Создадим новый проект и создадим класс Ocean.
Пока программа будет простой, самое главное
в этом уроке - понять архитектуру проекта,
увидеть весь лес как бы сверху.
 
18131. Александр
18131. Александр
7541. Максим
6627. Иван
11 Архитектура - Карта Пиратов 00:34:23
36 чел. ★ 5 $
  На этом уроке мы создадим карту Пиратов,
определимся с условными обозначениями (enum),
определим отдельные матрицы для размещения
кораблей и отметки совершённых по ним ударов.
Создадим метод для размещения кораблей
и потестируем всё это в пошаговом режиме.
Также добавим статистические переменные,
настоящие пираты должны знать сколько
было кораблей и сколько осталось.
 
1967. Дмитрий
2146. Иван
5029. Андрей Поляков
5029. Андрей Поляков
12 Архитектура - Наследие картинок 00:31:55
36 чел. ★ 4.9 $
  На этом уроке мы займёмся картинками.
Создадим класс Box, унаследованный от PictureBox
и настроим его для использования в нашем проекте.
Далее, из него мы унаследуем классы для каждой из картинок.
Самое сложное в этом уроке - уловить идею наследования
и понять, почему и как эти картинки выводятся на экран.
 
6282. Михаил
9014. Николай Денисов
9014. Николай Денисов
5024. Дмитрий
13 Архитектура - Фабрика картинок 00:16:15
36 чел. ★ 5 $
  На этом уроке мы настроим вывод карты на экран.
Нам понадобится фабрика картинок - статический
метод Box.Create и волшебная функция превращения
EnumShips x EnumFires в EnumIcons.
 
791. Валерий Жданов
791. Валерий Жданов
11589. Yefim
8275. Tekashnik
14 Архитектура - Мышкой по кораблям 00:21:27
36 чел. ★ 4.9 $
  На этом уроке мы научимся по щелчку мышки стрелять по кораблям.
Для этого нам понадобится создать обработчик MouseClick,
и подцепить его к каждой картинке. Используя делегаты
мы будем свистать всех на верх - до класса Form1,
из которого будем спускаться по иерархии опять вниз,
для пометки выстрела и отображения его на карте.
 
9323. Алексей
5407. Дмитрий 199
5024. Дмитрий
6614. Александр
15 База Морского Флота - INFO 00:11:16
42 чел. ★ 4.8 $
  На этом уроке мы начнём проектировать Базу данных серверного флота.
Пока мы создадим эскиз только для одной таблицы - info,
в которой будет поле status. Для него мы составим схему состояний,
и условия перехода из одного состояния в другое.
 
5029. Андрей Поляков
5029. Андрей Поляков
791. Валерий Жданов
5407. Дмитрий 199
16 База Морского Флота - SHIP 00:10:47
42 чел. ★ 4.9 $
  На этом уроке мы создадим таблицу для хранения координат
кораблей и их состояния. В таблице ship будет 5 полей.
Отдельное внимание уделено вопросу перезарядки пушек.
 
7119. Новопашин Владимир
5407. Дмитрий 199
6203. Николай Миролюбов
6203. Николай Миролюбов
17 База Морского Флота - GAME 00:12:00
40 чел. ★ 5 $
  На этом уроке мы создадим таблицу событий в нашей игре,
в которой будут хранится транзакции всех выстрелов
и их результатов. В таблице game будет 6 полей,
при каждом выстреле в неё будет добавляться две записи.
 
6696. Владимир Борисенко
2146. Иван
11589. Yefim
7276. Ильшат
18 База Морского Флота - phpMyAdmin 00:12:49
39 чел. ★ 4.9 $
  На этом уроке мы наконец-таки возьмёмся за практику.
Запустим phpMyAdmin и создадим в нём все три таблицы.
 
6282. Михаил
10494. Алексей В.
6632. Волнухин Владимир
689. Igorenzia
19 База Морского флота - Экспресс SQL 00:40:56
37 чел. ★ 4.9 $
  На этом уроке мы сделаем краткий экспресс-обзор языка структурированных запросов. Кратко рассмотрим все основные команды SQL.
 
1537. Сергей
5369. Archi
6632. Волнухин Владимир
6632. Волнухин Владимир
20 База Морского Флота - Запросы SQL 00:41:23
36 чел. ★ 4.9 $
  На этом уроке мы от души повеселимся с таблицами info и ship -
посоставляем самые разные запросы к ним, которые в будущем
нам пригодятся при проектировании Серверного протокола.
Эти запросы будут выполняться в PHP на серверной
части при обработке клиентских запросов.
 
7276. Ильшат
7276. Ильшат
7541. Максим
4395. Денис
21 Протокол - Список команд 00:12:40
30 чел. ★ 4.8 $
  На этом уроке мы начнём проектировать протокол общения клиентской программы с сервеной частью. Перечислим все клиентские команды и кратко пройдёмся по каждой. Составить xml-формат сервеных ответов нужно будет самостоятельно.
 
24. Олюшка
24. Олюшка
7276. Ильшат
7276. Ильшат
22 Протокол - Команды INFO и SHIP 00:53:55
29 чел. ★ 5 $
  На этом уроке мы проработаем клиентский запрос "info" и "ship".
Выпишем все варианты ответа сервера, и, самое главное,
напишем SQL-запросы для проверки всех возможных случаев.
Урок сложный, но после такой проработки создание
серверного РНР скрипта будет сплошным удовольствием :)
 
791. Валерий Жданов
791. Валерий Жданов
4780. Дмитрий
1967. Дмитрий
23 Протокол - Команда FIRE 00:56:38
29 чел. ★ 5 $
  На этом уроке мы проработаем клиентский запрос "fire".
Выпишем все варианты ответа сервера, и, самое главное,
напишем SQL-запросы для проверки всех возможных случаев.
Во второй части урока мы три раза пройдёмся по алгоритму,
выполняя все написанные SQL запросы.
 
6627. Иван
6632. Волнухин Владимир
5029. Андрей Поляков
5029. Андрей Поляков
24 Протокол - Команда GAME 00:11:13
29 чел. ★ 5 $
  На этом уроке мы разберём последнюю команду протокола - game.
Команда простая, но очень важная - именно она будет чаще всего
выполняться, благодаря ей все клиенты будут знать,
что происходит на море, что куда летит и с каким результатом.
 
791. Валерий Жданов
791. Валерий Жданов
6620. Юрий
9323. Алексей
25 Серверный флот - FTP подключение 00:06:50
29 чел. ★ 5 $
  На этом уроке мы подключимся к FTP серверу,
создадим там свою папку и создадим файл init.php.
 
791. Валерий Жданов
4780. Дмитрий
9752. chokayes
11589. Yefim
26 Серверный флот - Как PHP дружит с MySQL 00:07:35
28 чел. ★ 5 $
  На этом уроке мы создадим на РНР подключение к базе данных MySQL.
Организуем подключение, выберем базу данных,
выполним запрос, и напечатеем результат.
 
6203. Николай Миролюбов
6203. Николай Миролюбов
4342. Алекс
6282. Михаил
27 Серверный флот - Рефакторинг РНР-кода 00:20:37
28 чел. ★ 5 $
  На этом уроке мы займёмся рефакторингом, если у кого-нибудь
повернётся язык назвать этим словом то, чем мы здесь будем заниматься...
Мы переделаем файл init.php в подключаемый -
в нём будет только подключение к базе и две полезные функции.
В конце урока мы создадим файл battle.php,
в котором сделаем include и протестируем.
 
1947. Denis
8275. Tekashnik
6632. Волнухин Владимир
6632. Волнухин Владимир
28 Серверный флот - Функция do_info 00:11:33
28 чел. ★ 5 $
  На этом уроке мы создадим структуру файла battle.php
и напишем заглушки для всех функций протокола.
Далее, реализуем команду info в функции do_info()
 
6627. Иван
1947. Denis
4780. Дмитрий
1537. Сергей
29 Серверный флот - Капитан очевидность 00:19:04
28 чел. ★ 5 $
  На этом уроке мы исправим несколько мелких недочётов.
Добавим в таблицу info поле oceans, соответственно изменим функцию do_info().
Добавим в файл init.php две новые функции select_scalar() и now_ticks ().
Также нам придётся изменить тип полей для хранения тиков с int на bigint.
 
1947. Denis
7276. Ильшат
7276. Ильшат
6627. Иван
30 Серверный флот - Функция do_ship 00:50:43
28 чел. ★ 5 $
  На этом уроке мы напишем функцию do_ship().
Разберём ещё раз все возможные ошибки расстановки кораблей,
сформируем код и текст ошибки, который вернём в xml.
После успешного размещения всех кораблей
мы поменяем статус игры на "play" и начнём уже играть.
 
4780. Дмитрий
4780. Дмитрий
10494. Алексей В.
6627. Иван
31 Серверный флот - Функция do_fire 00:46:57
28 чел. ★ 4.9 $
  На этом уроке мы напишем функцию do_fire().
Разберём ещё раз все возможные ошибки при выполнении выстрела,
сформируем код и текст ошибки, который вернём в xml.
После успешного выстрела мы проверим количество оставшихся океанов.
В конце функции добавим все транзакции в таблицу game.
 
7541. Максим
7541. Максим
7276. Ильшат
7276. Ильшат
32 Серверный флот - Функция do_game 00:14:08
27 чел. ★ 5 $
  На этом уроке мы напишем функцию do_game().
Будем получать список всех выстрелов с результатами.
 
6282. Михаил
689. Igorenzia
6203. Николай Миролюбов
6203. Николай Миролюбов
33 ПОЛУФИНАЛЬНЫЙ УРОК. Большая игра 00:19:58
26 чел. ★ 5 $
  На этом уроке мы поиграем в Морской флот через адресную строку.
Устроим соревнование из шести участников. Битва будет что надо! :)

В начале урока мы допишем в протокольчик команду перезапуска игры и стартанём.
В конце урока я покажу, как написан скрипт map.php для отображения статуса игры.

В этом уроке нужно поиграть самому и ЗАПИСАТЬ видеообзор игры.
 
2146. Иван
2146. Иван
10494. Алексей В.
791. Валерий Жданов
34 Клиентский флот - Подключение к серверу 00:16:05
28 чел. ★ 5 $
  На этом уроке мы создадим класс Server,
который будет подключаться к нашему PHP скрипту.
Будет отправлять запрос и получать ответ.

Примечание
Если ваша сеть использует для подключения к интернету
особые настройки прокси-сервера, то необходимо добавить
в программу считывание системных Proxy-настроек, см. пример.
 
6620. Юрий
6620. Юрий
6282. Михаил
2146. Иван
35 Клиентский флот - Парсинг XML 00:21:34
25 чел. ★ 5 $
  На этом уроке мы научимся парсить XML документ.
Мы напишем метод RequestInfo(), который выудит
все нужные значения из XML-документы и вернёт
их в основную программу.
 
9014. Николай Денисов
9014. Николай Денисов
6282. Михаил
11589. Yefim
36 Клиентский флот - Класс ServerInfo 00:25:00
25 чел. ★ 5 $
  На этом уроке мы займёмся рефакторингом -
вынесем повторяющиеся действия в отдельные методы,
уберём параметры метода RequestInfo(),
запишем их во внутренние поля класса.
Потом вынесем всё хозяйство для Info-запроса
в отдельный класс ServerInfo.
Оптимизируем ещё некоторые процедуры
и уберём try-блоки в базовый класс.
 
689. Igorenzia
24. Олюшка
24. Олюшка
6620. Юрий
37 Клиентский флот - Класс ServerShip 00:34:41
25 чел. ★ 5 $
  На этом уроке мы создадим класс ServerShip
для размещения кораблей. В нём будет
вспомогательный метод ExtractShipCoords(),
который матрицу кораблей сконвертирует
в строчку GET данных для передачи их
в РНР скрипт. Также будут некоторые сложности
для получения этой матрицы в коде основной
программы, нам придётся добавить новый
метод в класс Ocean, изменить права
доступа к матрице ships в классе Map.
 
9752. chokayes
1947. Denis
4004. Елена
9913. vip
38 Клиентский флот - Класс ServerFire 00:31:08
24 чел. ★ 5 $
  На этом уроке мы создадим класс ServerFire.
Мы научим нашу программу отправлять на сервер
приказы о выстрелах! Правда, мы пока ещё не
будем знать о результатах выстрела.
Зато мы доработаем РНР функцию, чтобы она
в XML возвращала координаты выстрелившего
корабля, чтобы организовать правильную
анимацию.
 
8275. Tekashnik
11589. Yefim
6203. Николай Миролюбов
6203. Николай Миролюбов
39 Клиентский флот - Класс ServerGame 00:37:13
23 чел. ★ 5 $
  На этом уроке мы проработаем клиентский запрос "game"
для получения списка транзакций всех участников игры.
Мы создадим класс ServerGame, создадим структуру Actions,
доработаем методы из базового класса и реализуем
заполнение массива считанными с XML данными.
 
7541. Максим
9913. vip
689. Igorenzia
1537. Сергей
40 Одинокий капитан - Прицел 00:16:57
22 чел. ★ 5 $
  На этом уроке мы нарисуем новую пиктограмму
для нашей игры - знак прицела. И пропишем
его добавление в уже созданные классы.
Это пиктограмма будет использоваться для
отметки полей, по которым сделан выстрел,
но пока ещё не известен результат.
 
11589. Yefim
24. Олюшка
4780. Дмитрий
6282. Михаил
41 Одинокий капитан - Выстрелы 00:15:24
22 чел. ★ 5 $
  На этом уроке мы обработаем массив actions
со списком полученных от сервера транзакций.
Сделаем отображение результатов, для этого
придётся исправить мелкие ошибки прошлого
урока в классе Box: Create(EnumIcons icon)
 
1947. Denis
24. Олюшка
7276. Ильшат
7276. Ильшат
42 Одинокий капитан - Победа! 00:25:02
22 чел. ★ 5 $
  На этом уроке мы добавим на форму таймер
и флаг состояния игры. После этого мы поиграем
в одинокого капитана - будем стрелять
по всем океанам без ответного огня.
 
5286. Коваленко Дмитрий
8275. Tekashnik
10494. Алексей В.
5029. Андрей Поляков
43 Финишная миля. Перезагрузка. 00:04:15
21 чел. ★ 4.9 $
  На этом уроке мы добавим функцию перезапуска в РНР файл.
 
1537. Сергей
8275. Tekashnik
4004. Елена
4004. Елена
44 Финишная миля. Мой океан. 00:42:18
20 чел. ★ 5 $
  На этом уроке мы добавим две важные функции в наш проект.
1. Определение номера свободного океана при запуске.
2. Случайное размещение кораблей на выбранном океане.
 
9014. Николай Денисов
9014. Николай Денисов
2146. Иван
2146. Иван
45 Финишная миля. Найти победителя 00:20:28
19 чел. ★ 4.9 $
  На этом уроке мы наконец-таки немножко поиграем :)
Потом сделаем определение победителя.
Из-за чего в конец запутаемся в коде класса Form1.
Примем решение на следующем уроке переписать его.
 
1537. Сергей
6203. Николай Миролюбов
6203. Николай Миролюбов
7541. Максим
46 Свежий взгляд. Схема проекта. 00:14:46
18 чел. ★ 4.9 $
  На этом уроке мы опять начнём всё сызнова.
Рассмотрим шесть основных состояний нашей программы.
Создадим новый проект и настроим его.
 
4004. Елена
2146. Иван
5029. Андрей Поляков
689. Igorenzia
47 Свежий взгляд. Управление из таймера. 00:11:34
18 чел. ★ 5 $
  На этом уроке мы заложим фундамент
нашей программы - шесть методов do*()
и вызов их из таймера.
 
689. Igorenzia
1947. Denis
7276. Ильшат
8275. Tekashnik
48 Свежий взгляд. Ожидание запуска. 00:17:02
18 чел. ★ 5 $
  На этом уроке мы напишем метод showMessage()
для отображения сообщений игры.
Далее, мы добавим в наш проект
уже написанные классы Server* и Map.
Также разместим кнопку Start для запуска игры.
 
5029. Андрей Поляков
5029. Андрей Поляков
24. Олюшка
24. Олюшка
49 Свежий взгляд. Размещение кораблей. 00:18:37
18 чел. ★ 5 $
  На этом уроке мы напишем метод doShip() для размещения кораблей.
Для этого нам потребуется добавить уже написанные классы Box и Ocean.
Также придётся немного поменять функцию создания и размещения кораблей.
 
9014. Николай Денисов
9014. Николай Денисов
7276. Ильшат
5029. Андрей Поляков
50 Свежий взгляд. Завершение проекта. 00:21:42
18 чел. ★ 5 $
  На этом уроке МЫ ЗАКОНЧИМ создание программы.
Напишем обработку состояний play и stop.
 
5029. Андрей Поляков
8275. Tekashnik
9014. Николай Денисов
9014. Николай Денисов
51 ФИНАЛЬНЫЙ УРОК. 00:03:29
9 чел. ★ 5 $
  На этом уроке мы поиграем по сети с участниками вебинара.
Твоя задача - записать видеообзор созданного проекта.

Какой курс ты будешь проходить следующим?
 
7276. Ильшат
1967. Дмитрий
24. Олюшка
9014. Николай Денисов
  Итого:   51 видеоурок 19 час. 44 мин.
9 чел. ★ 4.96  
  Финалисты:   Андрей Поляков,   Елена,   Юрий,   Олюшка,   Иван,   Tekashnik,   Дмитрий,   Ильшат,   Николай Денисов .

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





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

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

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

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


Научился: Записывать видеообзор
Трудности: Собраться с духом и найти общий язык с фантазией.
Первооткрывателем (то есть первоокончателем) этого курса быть не получилось. Но я его усе-таки закончила!


Научился: В очередной раз записывать видеообзор
Трудности: придумать, что было самым сложным
Ну что хочется сказать, спасибо за курс! Очень, ёмкий, насыщенный полезный! Переплетение технологий легко наглядно и просто. Всем рекомендую)