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

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

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

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

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

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





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

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

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

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


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


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