C# обучение видео

Формула программиста
основатель — Волосатов Евгений Витольдович

Морской Флот

Серия из 50 коротких уроков по созданию
многопользовательской "Морской Флот".
Будет серверная часть на PHP с Базой данных MySQL.
также будут использованы анимированные спрайты
для оформления клиентской части программы.


Объём: 50 уроков.
Срок: 50 дней.


5,000 руб.


Для подписки на пакет необходимо авторизоваться.

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

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:22:00 51 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 30 мин. [Показать отчёт]
Научился: Рисовать картинки 
Сложности: Ничего 
Комментарии: Все будет впереди, пока что выполнено самое простое. 
2 Интерфейс - Первый кораблик 00:32:33 46 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 30 мин. [Показать отчёт]
Научился: Обрабатывать события мышки, использовать ресурсы. 
Сложности: Ничего 
Комментарии: Все получилось. 
3 Интерфейс - А на море корабли 00:22:26 45 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 30 мин. [Показать отчёт]
Научился: Определять клетку моря по координатам мышки. 
Сложности: Ничего. Новым было определение центра клетки по координатам мышки. 
Комментарии: Чтобы не исправлять картинки и сделать промежутки между ними, я исправила константу tileSize = 34. В результате картинки раздвинулись (видно на скриншоте). 
4 Графика - Карта Морского флота 00:31:14 35 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 30 мин. [Показать отчёт]
Научился: Работать с матрицей моря. 
Сложности: ничего 
Комментарии: Продолжение следует... 
5 Графика - Выстрелы по Кораблям 00:14:31 35 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 40 мин. [Показать отчёт]
Научился: "Подглядывать" на карту кораблей. 
Сложности: Подбить весь флот за 7 ударов. 
Комментарии: Статистику и MessageBox надо поменять местами. На самом деле там 7 ударов и 0 кораблей. 
6 Графика - Рефакторинг 00:26:11 34 чел. ★ 4.8 Done
  Отчёт отправил: 4004. Елена Решено за 50 мин. [Показать отчёт]
Научился: Рефакторингу кода. 
Сложности: Не запутаться в классах. 
Комментарии: Полезная вещь этот рефакторинг. Позволяет взглянуть на программу по-новому. 
7 Анимация - Полёт снаряда 00:08:33 30 чел. ★ 4.7 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Рисовать анимационные картинки 
Сложности: Найти эскиз взрыва 
Комментарии: нашла эскиз всего из 9 картинок. 
8 Анимация - Отображение кадров 00:31:33 30 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Создавать анимацию. 
Сложности: Создание анимации, прозрачный фон. 
Комментарии: Убрала артефакты, добавив в цикл две строчки: for (int j = 0; j < 10; j++) { pictureFire.Image = Properties.Resources.fire10; // картинка с прозрачным фоном pictureFire.Refresh(); pictureFire.Image = FireAnimate[j]; pictureFire.Location = new Point(50+j*4, 50+j*7); pictureFire.Refresh(); Thread.Sleep(100); } А взрыв и правда красивый получился. 
9 Анимация - Полёт по таймеру 00:28:19 29 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 45 мин. [Показать отчёт]
Научился: Использовать таймер для анимации 
Сложности: ничего 
Комментарии: Урок очень понравился. Все здорово. Только у меня успешно "стреляет" по всей форме, а не только в пределах поля. Подняла пару строк if (!IsOnTheMap(x, y)) return; и поставила после graph.ExtractCoords(e.X, e.Y, out x, out y); Может, что-то в уроке просмотрела. А может, это пригодится в игре на нескольких полях. А то сейчас  
10 Архитектура - Перезагрузка проекта 00:24:35 29 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 30 мин. [Показать отчёт]
Научился: Начала разбираться с диаграммами классов 
Сложности: Составить диаграмму 
Комментарии: Интересно разобраться с составлением диаграмм классов. Жаль, что Express версия Visual Studio не позволяет составлять UML-диаграммы по коду программы. Мне кажется, что пока моя диаграмма весьма приближенно отражает то, что в итоге будет содержаться в программе. 
11 Архитектура - Карта Пиратов 00:34:23 29 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 45 мин. [Показать отчёт]
Научился: Генерировать методы классов 
Сложности: ничего 
Комментарии: Когда решала олимпиадную задачу "Морской бой" очень не хватало еще одного состояния - когда точно знаешь, что в этой клетке корабля нет. Здесь это учтено. 
12 Архитектура - Наследие картинок 00:31:55 29 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 45 мин. [Показать отчёт]
Научился: Использовать наследование встроенных классов (на примере PictureBox) 
Сложности: ничего 
Комментарии: Замечательный урок по наследованию классов. 
13 Архитектура - Фабрика картинок 00:16:15 29 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 30 мин. [Показать отчёт]
Научился: Использовать вложенные switch 
Сложности: ничего 
Комментарии: Чтобы "растянуть" фон под корабликами можно воспользоваться this.BackgroundImageLayout = ImageLayout.Stretch; 
14 Архитектура - Мышкой по кораблям 00:21:27 29 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 10 мин. [Показать отчёт]
Научился: Создавать обработчики события для динамических объектов (на примере PictureBox) 
Сложности: Успевать все в реальном времени (на вебинаре) 
Комментарии: Все получилось сделать в прямом эфире (во время вебинара), поэтому затраченное время указала 10 минут (только на составление отчета) 
15 База Морского Флота - INFO 00:11:16 35 чел. ★ 4.8 Done
  Отчёт отправил: 4004. Елена Решено за 20 мин. [Показать отчёт]
Научился: Составлять структуру базы данных 
Сложности: Ничего 
Комментарии: На мой взгляд, процедура restart здесь не нужна (см. блок-схему). Просто в случае status=stop алгоритм заканчивается. 
16 База Морского Флота - SHIP 00:10:47 35 чел. ★ 4.8 Done
  Отчёт отправил: 4004. Елена Решено за 15 мин. [Показать отчёт]
Научился: Составлять схему таблицы базы данных 
Сложности: проработать алгоритм изменения значения флага корабля 
Комментарии: Самое интересное впереди :) 
17 База Морского Флота - GAME 00:12:00 33 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 20 мин. [Показать отчёт]
Научился: Представлять ход игры в виде таблицы 
Сложности: ничего 
Комментарии: За время этого урока на вебинаре у меня 3 раза "отваливался" Интернет :(. Поэтому смотреть пришлось в записи. 
18 База Морского Флота - phpMyAdmin 00:12:49 33 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 10 мин. [Показать отчёт]
Научился: Создавать таблицы вручную на удаленном сервере. 
Сложности: Сложно было не мне, а серверу во время вебинара. 
Комментарии: Все получилось. С нетерпением жду протоколов. 
19 База Морского флота - Экспресс SQL 00:40:56 31 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Расширила "словарный запас" MySQL 
Сложности: ничего 
Комментарии: Некоторых ключевых слов раньше не слышала, таких как LIKE, GROUP BY, DISTINCT. Так что мне удалось расширить свои познания в MySQL 
20 База Морского Флота - Запросы SQL 00:41:23 30 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Создавать комбинированные запросы 
Сложности: ничего 
Комментарии: Еще раз "С пополнением словарного запаса" меня :) 
21 Протокол - Список команд 00:12:40 24 чел. ★ 4.7 Done
  Отчёт отправил: 4004. Елена Решено за 30 мин. [Показать отчёт]
Научился: Обновлять значения полей в таблице 
Сложности: ВСЕ!!! 
Комментарии: Наверное, это самый сложный урок для понимания за все время на проекте. Пока нет полного представления того, что мы хотим получить. Знаний XML в достаточном объеме не имею. Очень надеюсь на дальнейшее "прояснение". Единственное, что было просто - это добавить поле в таблицу info. 
22 Протокол - Команды INFO и SHIP 00:53:55 23 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: "Прокачала" SQL-запросы, некоторые я бы не смогла составить 
Сложности: уже стало проще. Правда, по-прежнему XML принимаю на веру. 
Комментарии: Попыталась записать код на PHP. Интересно потом сравнить :) 
23 Протокол - Команда FIRE 00:56:38 23 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 20 мин. [Показать отчёт]
Научился: Вести лог игры 
Сложности: подставлять данные в запросы при проверке 
Комментарии: Интересно уже запустить весь этот battle.php Забыла как считывать данные из адресной строки через глобальный массив $_GET. 
24 Протокол - Команда GAME 00:11:13 23 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 25 мин. [Показать отчёт]
Научился: Части протокола, касающейся таблицы GAME 
Сложности: ничего 
Комментарии: Теперь весь протокол сформирован 
25 Серверный флот - FTP подключение 00:06:50 23 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 5 мин. [Показать отчёт]
Научился: Подключаться к серверу по FTP 
Сложности: Сложным - ничего, новым - все (почти) 
Комментарии: Вот и первый "Привет, Сервер!" Все успела во время вебинара, поэтому времени мало заняло. 
26 Серверный флот - Как PHP дружит с MySQL 00:07:35 23 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 10 мин. [Показать отчёт]
Научился: Подключаться к базе занных 
Сложности: ничего 
Комментарии: Теперь буду расширять "словарный запас PHP" 
27 Серверный флот - Рефакторинг РНР-кода 00:20:37 23 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 10 мин. [Показать отчёт]
Научился: Разделять код PHP на функции 
Сложности: ничего 
Комментарии: Опять осталось только отчет оформить, все сделала во время вебинара. 
28 Серверный флот - Функция do_info 00:11:33 23 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 10 мин. [Показать отчёт]
Научился: Это самый первый осознанный xml. Начинаю его понимать. 
Сложности: Успеть сделать форматированный xml в поле textarea во время вебинара 
Комментарии: Очень выручает временами кнопка PrintScreen, когда во время вебинара не успеваю что-нибудь, а все уже дальше двинулись.  
29 Серверный флот - Капитан очевидность 00:19:04 23 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 5 мин. [Показать отчёт]
Научился: Добавлять поля в базу данных, перемещать поля. 
Сложности: исправлять ошибки по ходу вебинара (но я справилась!) 
Комментарии: Все готово к реализации протокола :). 
30 Серверный флот - Функция do_ship 00:50:43 23 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Отслеживать тонкости реализации протокола в PHP 
Сложности: исправлять ошибки 
Комментарии: Вот тут-то я уже перестала успевать за вебинаром :( 
31 Серверный флот - Функция do_fire 00:46:57 23 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Выполнять выстрелы 
Сложности: Увидеть таблицу ship в базе данных!!!!!!!!!!!!!!!!!!!!!!!!!! 
Комментарии: Можете вернуть отчет на доработку, только помогите пожаааалуйста!!!!!!! Не могу увидеть таблицу vev_ship в базе данных!!! Ползунок в самом низу, а таблицы нет :((((((((((( (см. скриншот) Запрос SELECT TABLES выводит, что таблица есть в базе. 
32 Серверный флот - Функция do_game 00:14:08 22 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 20 мин. [Показать отчёт]
Научился: Добавлять элементы списка в xml-ответ 
Сложности: Этот урок намного проще предыдущего. 
Комментарии: Надеюсь, что ошибок не наделала :) Вроде все получилось 
33 ПОЛУФИНАЛЬНЫЙ УРОК. Большая игра 00:19:58 21 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Создавать скрипт map.php для реализации игры 
Сложности: найти ошибку в файле battle.php, допущенную в предыдущем уроке: прошло довольно много времени, все подзабылось, а номер океана to_ocean выводился неверно. 
Комментарии: Интересное решение с формированием цветов ячеек таблицы и вообще стилей. Надо взять на вооружение :) Я бы стала делать через style.css и класс ячейки. Жалко, что вебинар проходил слишком поздно - не удалось вживую поучаствовать в "Большой игре" 
34 Клиентский флот - Подключение к серверу 00:16:05 23 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 30 мин. [Показать отчёт]
Научился: Осуществлять запросы к серверу 
Сложности: Разобраться с кодом функции RequestXML() 
Комментарии: Пока сложновато получается. Видимо, потому что знаний в этом вопросе не хватает. Но все интересно. Думаю, дальше легче будет :) 
35 Клиентский флот - Парсинг XML 00:21:34 20 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Парсить xml 
Сложности: Сориентироваться и понять ошибки в файлах battle.php и init.php, которые не дают корректно работать функции LoadXml() 
Комментарии: Урок дался как-то тяжело. Сначала не могла найти, откуда в xml берется сверху пустая строка. Оказалось, что я ее оставила в файле init.php случайно. Потом замучилась исправлять перевод строки. Оказывается, notepad++, в котором я набирала текст файла battle.php по умолчанию использует для перевода строки \r\n вместо \n. Долго искала, что это так, потом долго искала, как это исправить. В итоге, конечно, все получилось, но не просто. Видимо, xml для меня пока остается "темным лесом". Хотя кое-какие "проблески" уже намечаются. 
36 Клиентский флот - Класс ServerInfo 00:25:00 20 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 30 мин. [Показать отчёт]
Научился: рефакторингу кода 
Сложности: ничего 
Комментарии: Урок легкий, но очень полезный. 
37 Клиентский флот - Класс ServerShip 00:34:41 20 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 50 мин. [Показать отчёт]
Научился: Передавать корабли из массива с строку параметров PHP 
Сложности: ничего 
Комментарии: Отличный урок! Все получилось, все легко и понятно!!! 
38 Клиентский флот - Класс ServerFire 00:31:08 19 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 45 мин. [Показать отчёт]
Научился: Выполнять выстрелы 
Сложности: ничего 
Комментарии: Все получилось! Движемся к финишу!!! 
39 Клиентский флот - Класс ServerGame 00:37:13 18 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Парсить массив из XML-тегов 
Сложности: ничего 
Комментарии: УРА!!! Я наверстала свое отставание в "Морском флоте". Чувствуется, что курс близится к своему завершению. Главное, чтобы это "завершение" свершилось!!! 
40 Одинокий капитан - Прицел 00:16:57 18 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 20 мин. [Показать отчёт]
Научился: составлять функции обработки выстрелов 
Сложности: не забыть добавить обработку неизвестного выстрела во все ветки программы 
Комментарии: Урок успела сделать на вебинаре. Надеюсь, что ничего не упустила. Может, потом еще ошибки обнаружатся. Подзабылся уже проект.  
41 Одинокий капитан - Выстрелы 00:15:24 18 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 20 мин. [Показать отчёт]
Научился: отображать картинки на море с помощью методов Fire(), Fail(), Kill() 
Сложности: не запутаться в коде (он уже разросся сильно) 
Комментарии: Все получилось! Отображается прицел, а через 10 секунд - результат при нажатии на кнопку Game. 
42 Одинокий капитан - Победа! 00:25:02 18 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 40 мин. [Показать отчёт]
Научился: выполнять выстрелы 
Сложности: "добить" корабли 
Комментарии: Все получилось. Только долго приходится корабли искать. 
43 Финишная миля. Перезагрузка. 00:04:15 17 чел. ★ 4.8 Done
  Отчёт отправил: 4004. Елена Решено за 5 мин. [Показать отчёт]
Научился: Удалять записи из базы данных для инициализации игры 
Сложности: сложное будет дальше :) 
Комментарии: Этот урок легкий. То ли еще будет :) 
44 Финишная миля. Мой океан. 00:42:18 16 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 30 мин. [Показать отчёт]
Научился: сложно сказать... 
Сложности: распутаться в программе, даже не знаю, удалось ли мне это в полной мере 
Комментарии: Ну, хотя бы корабли размещаются. С выстрелами придется еще разбираться. Урок тяжелый для меня оказался :( 
45 Финишная миля. Найти победителя 00:20:28 16 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 45 мин. [Показать отчёт]
Научился: играть в "Морской флот" 
Сложности: Остановить выдачу сообщений о победителях и проигравших, которая генерировала каждую секунду по 4 сообщения. Пришлось даже воспользоваться "волшебной" комбинацией Ctrl-Alt-Del  
Комментарии: Вроде бы мне удалось угомонить таймер, и даже поиграть. Правда, в уроке я так и не увидела, почему там сообщения выводятся один раз, а у меня ОЧЕНЬ много. Сделала просто - при выводе победителя поставила timer.Enabled = false, а при нажатии на кнопку 'Ship' timer.Enabled = true.  
46 Свежий взгляд. Схема проекта. 00:14:46 15 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 10 мин. [Показать отчёт]
Научился: Повторение пройденного 
Сложности: ничего 
Комментарии: Переходим к третьей реализации "Морского флота" 
47 Свежий взгляд. Управление из таймера. 00:11:34 15 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 15 мин. [Показать отчёт]
Научился: Программировать методом разбиения программы на функции 
Сложности: Самой почему-то раньше не приходило в голову, как необходимо организовать код 
Комментарии: Сразу вспомнилась книжка Р. Мартина Чистый код. Создание, анализ и рефакторинг. 
48 Свежий взгляд. Ожидание запуска. 00:17:02 15 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 20 мин. [Показать отчёт]
Научился: Добавлять в проект существующие классы 
Сложности: запуталась с кнопкой Start 
Комментарии: Все отлично! 
49 Свежий взгляд. Размещение кораблей. 00:18:37 15 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 30 мин. [Показать отчёт]
Научился: Размещать корабли 
Сложности: не запутаться в "кусках старого кода" 
Комментарии: Все получилось! 
50 Свежий взгляд. Завершение проекта. 00:21:42 15 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 35 мин. [Показать отчёт]
Научился: Обрабатывать выстрелы и конец игры 
Сложности: не запутаться с делегатами 
Комментарии: Получилась хорошая игрушка. Правда, обнаружила, что когда "игра уже идет", и в этот момент выполнить команду ?do=restart, то всем запущенным окнам выделяется океан 0. Думаю, это исправилось, когда в методе doWait() было добавлено дополнительное условие, которое я запомнила с вебинара if (serverInfo.status == "wait" || serverInfo.status == "stop") Но в запись видеоурока это, к сожалению, не попало. 
51 ФИНАЛЬНЫЙ УРОК. 00:03:29 8 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 3 час. 00 мин. [Показать отчёт]
Научился: Записывать видеообзор 
Сложности: Собраться с духом и найти общий язык с фантазией. 
Комментарии: Первооткрывателем (то есть первоокончателем) этого курса быть не получилось. Но я его усе-таки закончила! 
Видеообзор: https://youtu.be/57zQUvY-AIA
52 VIP урок. Змейка 01:08:56 1 чел. ★ 5 $
  Итого:   52 видеоурока общей продолжительностью 20 час. 53 мин. 1 чел. ★ 4.95  
  Финалисты:   Ильшат .

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




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: тестировать свою программу, записывать видеообзор
Трудности: не вериться что это уже все, я уже с роднилась с этим классным куром!
УРА!!! УРА и еще раз УРА!!! Я сделала самую суперскую игру!!! Какая же я Умничка!!! Спасибо Женя за этот шикарный курс, пусть кто-то скажет что он и затянут и может быть кому-нибудь не понравятся то что мы переделывали, начинали несколько раз все с нуля, однако мне это все безумно понравилось и только благодаря этому мне все понятно как создается проект, как пишется программа, для меня это очень важно и ценно!!! Я получила отличный опыт и практику, море новых знаний и сейчас уже намного увереннее себя чувствую в программировании, мое количество уже переросло в качество и это меня делает очень счастливой, это стоит того!!! ❤️
Смотреть видеозапись: https://youtu.be/hEDdjHnTVMQ
Научился: В очередной раз записывать видеообзор
Трудности: придумать, что было самым сложным
Ну что хочется сказать, спасибо за курс! Очень, ёмкий, насыщенный полезный! Переплетение технологий легко наглядно и просто. Всем рекомендую)
Смотреть видеозапись: https://youtu.be/9eZbbzP2GPQ