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

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

Морской Флот

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


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


5,000 руб.


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

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

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:22:00 51 чел. ★ 4.9 Done
  Отчёт отправил: 6282. Михаил Решено за 40 мин. [Показать отчёт]
Научился: Редактировать рисунки в paint.net))) 
Сложности: Рисование... 
Комментарии: Замечаний нет 
2 Интерфейс - Первый кораблик 00:32:33 46 чел. ★ 4.9 Done
  Отчёт отправил: 6282. Михаил Решено за 35 мин. [Показать отчёт]
Научился: Закрепил создание формы и объекта Graphics 
Сложности: Ничего 
Комментарии: Замечаний нет 
3 Интерфейс - А на море корабли 00:22:26 45 чел. ★ 4.9 Done
  Отчёт отправил: 6282. Михаил Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Поработал с координатами мыши, добавлять новые объекты на PictureBox. 
Сложности: Ничего 
Комментарии: Замечаний нет 
4 Графика - Карта Морского флота 00:31:14 35 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 1 час. 20 мин. [Показать отчёт]
Научился: Создавать массив-матрицу карты расположения кораблей, реализовал случайное распределение кораблей на поле 
Сложности: Реализация функции размещения корабля на поле. 
Комментарии: Замечаний нет 
5 Графика - Выстрелы по Кораблям 00:14:31 35 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Обрабатывать щелчки мыши только в пределах поля, делать проверку поля, по которому ударили, сделал подсчет подбитых кораблей, вывод морской статистики. 
Сложности: Так и не удалось подбить весь флот за минимальное количество ударов))) 
Комментарии: Прикольно!!! 
6 Графика - Рефакторинг 00:26:11 34 чел. ★ 4.8 Done
  Отчёт отправил: 6282. Михаил Решено за 1 час. 40 мин. [Показать отчёт]
Научился: Создал класс Graph с функциями, отвечающими за работу графики, произвел оптимизацию и рефакторинг начальной программы. 
Сложности: Немного запутался при переделке функций после переноса. 
Комментарии: Замечаний нет. 
7 Анимация - Полёт снаряда 00:08:33 30 чел. ★ 4.7 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Нарисовал кадры для анимации снаряда 
Сложности: Ничего 
Комментарии: Замечаний нет 
8 Анимация - Отображение кадров 00:31:33 30 чел. ★ 4.9 Done
  Отчёт отправил: 6282. Михаил Решено за 40 мин. [Показать отчёт]
Научился: Создавать анимацию из набора картинок 
Сложности: Ничего 
Комментарии: Замечаний нет 
9 Анимация - Полёт по таймеру 00:28:19 29 чел. ★ 4.9 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Перемещать объект по экрану, в зависимости от координат мышки 
Сложности: Формула для расчета перемещений картинок 
Комментарии: Замечаний нет 
10 Архитектура - Перезагрузка проекта 00:24:35 29 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: ??? 
Сложности: Ничего 
Комментарии: :) Зачем опять один общий PictureBox? Почему бы на форме ни разместить сразу 4 Box-a для каждого поля, а в них уже все рисовать? 
11 Архитектура - Карта Пиратов 00:34:23 29 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 40 мин. [Показать отчёт]
Научился: Был составлен список значений для Ship и Fire, список всех значений для Icon, заполнена матрицу Ship x Fire = Icon создан класс Map с полями: константа mapSize и матрица ships / fires. Создан метод Create (). Созданы два перегруженных метода PlaceShip. Протестировал работу программы в пошаговом режиме. 
Сложности: ничего 
Комментарии: Замечаний нет 
12 Архитектура - Наследие картинок 00:31:55 29 чел. ★ 4.9 Done
  Отчёт отправил: 6282. Михаил Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Создавать новые классы, используя наследование как он встроенных классов, так и от своих собственных. Передавать свойства встроенного класса в свои. Добился вывода четырех океанов, заполненных кораблями на форму. 
Сложности: Достаточно сложно было разобраться с функциями для вывода на форму pictureBox-ов.  
Комментарии: Запутался в формуле вывода на экран картинок - сам бы долго возился, чтобы ее придумать... 
13 Архитектура - Фабрика картинок 00:16:15 29 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Был создан статический метод в классе Box - Create(), который получает иконку, и в зависимости от типа иконки создает нужный нам объект Box. Тем самым мы динамически получаем нужную картинку в ячейке на поле, используя новый метод в классе Мар. Теперь программа работает в разных режимах: создает 4 игровых поля заданных размеров с разным количеством размещаемых кораблей. 
Сложности: С подробными объяснениями преподавателя вроде бы ничего не было сложным. 
Комментарии: А вот этот урок реально был крут - когда видишь глазами результаты работы, настроение улучшается, и хочется продолжать делать эту работу!!! 
14 Архитектура - Мышкой по кораблям 00:21:27 29 чел. ★ 4.9 Done
  Отчёт отправил: 6282. Михаил Решено за 15 мин. [Показать отчёт]
Научился: Использовал делегат для прикрепления события MouseClick к классу Box. Теперь по клику мышкой на каждом отдельно созданном Box-е срабатывают функции, которые рисуют соответственно картинку: попал - мимо! 
Сложности: Пропустил момент присвоения переменной типа делегата имени функции. Из-за этого долго ломал голову, почему не работает программа. 
Комментарии: Нормально 
15 База Морского Флота - INFO 00:11:16 35 чел. ★ 4.8 Done
  Отчёт отправил: 6282. Михаил Решено за 40 мин. [Показать отчёт]
Научился: Разбирался с рисованием схемы таблицы и схемой состояний сервера 
Сложности: Пока не особо понял как это все будет выглядеть в базе MySql 
Комментарии: Замечаний нет 
16 База Морского Флота - SHIP 00:10:47 35 чел. ★ 4.8 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Составил еще одну таблицу ship для базы данных игры. 
Сложности: Вроде ничего. 
Комментарии: Жду, когда же все это будем заносить уже в базу))) 
17 База Морского Флота - GAME 00:12:00 33 чел. ★ 4.9 Done
  Отчёт отправил: 6282. Михаил Решено за 20 мин. [Показать отчёт]
Научился: Составил третью таблицу Game, включающую в себя время события, произошедшего на игровых полях и координаты событий. Составил таблицу, как бы она выглядела в базе данных. 
Сложности: Сложного все-таки понять как это будет работать..... И как сказал Евгений, мне бы даже в голову не пришло составить именно такие таблицы. Тоже пришлось бы ломать голову... 
Комментарии: Замечаний нет 
18 База Морского Флота - phpMyAdmin 00:12:49 33 чел. ★ 4.9 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Работать удаленно в phpmyadmin. (Локально опыт имеется) 
Сложности: Ничего. Все очень знакомо. Терпение при ожидании загрузки каждой страницы))) 
Комментарии: Замечаний нет 
19 База Морского флота - Экспресс SQL 00:40:56 31 чел. ★ 4.9 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Освежил память по работе с языком SQL 
Сложности: Ничего 
Комментарии: Нет 
20 База Морского Флота - Запросы SQL 00:41:23 30 чел. ★ 4.9 Done
  Отчёт отправил: 6282. Михаил Решено за 20 мин. [Показать отчёт]
Научился: У меня 5 в универе по дисциплине "Базы данных" и по курсовой))) 
Сложности: Ничего 
Комментарии: Нет 
21 Протокол - Список команд 00:12:40 24 чел. ★ 4.7 Done
  Отчёт отправил: 6282. Михаил Решено за 40 мин. [Показать отчёт]
Научился: Редактировать созданные в базе данных таблицы. Составил клиентские команды с параметрами для сервера. Попытался составить список xml-ответов сервера на клиентские команды. 
Сложности: Пока не понял как все это будет работать... Но очень интересно! 
Комментарии: Замечаний нет 
22 Протокол - Команды INFO и SHIP 00:53:55 23 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Составил sql запросы к базе данных. Сделал набросок текста php-скрипта на сервере, который должен возвращать результаты запроса из БД. Потренировался с выполнением запросов к БД. 
Сложности: Понимание общей картины работы всего этого... 
Комментарии: Не знаю - правильно ли я понимаю, но получается при запуске программы на C# и расстановке кораблей на полях и т.п. сначала все эти данные должны отправиться на сервер для заполнения всех таблиц и статусов??? И должен вернуться ответ после проверки корректности в программу на C#??? Или не понимаю...... 
23 Протокол - Команда FIRE 00:56:38 23 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 1 час. 40 мин. [Показать отчёт]
Научился: Еще раз проработал запросы к БД. Закрепил понимание работы серверной части программы. 
Сложности: Теперь уже чуть-чуть понятнее. Жду с нетерпением когда будем реализовывать все это в программе на C#!!! 
Комментарии: Все нормально - хотя и непривычно. Записался на этот курс как раз чтобы увидеть и понять как же можно реализовать работу программы в сети.  
24 Протокол - Команда GAME 00:11:13 23 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 15 мин. [Показать отчёт]
Научился: Сформировал запросы к серверу для команды GAME и ответ сервера для нее. 
Сложности: Теперь уже все просто. 
Комментарии: Хорошо. 
25 Серверный флот - FTP подключение 00:06:50 23 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 10 мин. [Показать отчёт]
Научился: Соединяться с сервером по протоколу FTP. И РАБОТАЕТ!!! 
Сложности: Ничего 
Комментарии: Все отлично! 
26 Серверный флот - Как PHP дружит с MySQL 00:07:35 23 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 20 мин. [Показать отчёт]
Научился: написал php-скрипт с запросом к БД. Проверил результат его работы в браузере. 
Сложности: Ничего 
Комментарии: Работает! 
27 Серверный флот - Рефакторинг РНР-кода 00:20:37 23 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Написал функции для подключения к БД и извлечения содержимого таблиц по запросу в файлах .php Загрузил данные на сайт, протестировал работу скриптов. 
Сложности: Ничего 
Комментарии: Спасибо за урок! 
28 Серверный флот - Функция do_info 00:11:33 23 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 35 мин. [Показать отчёт]
Научился: Написал часть скрипта для запроса к БД info и функцию для формирования ответа сервера в формате XML.  
Сложности: В принципе ничего. Забыл что запрос необходимо прописать в строке браузера, вызывал старую версию без GET-параметра, долго не мог разобраться, почему в браузере возвращается ))) 
Комментарии: КЛАСС! 
29 Серверный флот - Капитан очевидность 00:19:04 23 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 20 мин. [Показать отчёт]
Научился: Добавил изменения в БД: добавил поле oceans в таблицу info, изменил тип полей tick, ticks, fire_ticks, cool_tick в соответствующих таблицах с INT на BIGINT, чтобы уместить значения микросекунд. Внес соответствующие правки в файл battle.php. Добавил новые функции в init.php. 
Сложности: Ничего 
Комментарии: Замечаний нет 
30 Серверный флот - Функция do_ship 00:50:43 23 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Делать ошибки в тексте программы, а потом долго и упорно искать и исправлять их, чтобы программа работала((( 
Сложности: Разобраться, почему программа не работает так как нужно 
Комментарии: Спасибо за урок 
31 Серверный флот - Функция do_fire 00:46:57 23 чел. ★ 4.9 Done
  Отчёт отправил: 6282. Михаил Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Реализовал функцию do_ship(). Проверил правильность работы скрипта запросами через браузер. 
Сложности: Медленно, нудно, но нужно.... 
Комментарии: Нет замечаний 
32 Серверный флот - Функция do_game 00:14:08 22 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Добавил функцию do_game() которая реализует запись транзакций игры с указанием времени события. Протестировал работу данной функции через запрос в строке браузера. 
Сложности: Теперь, когда все почти готово, уже ничего. Это была самая простая функция. 
Комментарии: Замечаний нет 
33 ПОЛУФИНАЛЬНЫЙ УРОК. Большая игра 00:19:58 21 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Поиграл в игру через командную строку, сам с собой. Когда надоело - подглянул в таблицу размещения кораблей и добил последний))) Хотя их всего по два было. 
Сложности: Ничего. 
Комментарии: Урок был легким для понимания. 
34 Клиентский флот - Подключение к серверу 00:16:05 23 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Познакомился с новыми классами для работы с протоколами http. Создал первый запрос к серверу из программы на C#. 
Сложности: Все понятно! 
Комментарии: Хорошо. 
35 Клиентский флот - Парсинг XML 00:21:34 20 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 40 мин. [Показать отчёт]
Научился: Наконец-то познал как парсить XML файл на практике. Когда читал в учебнике по C#, было как-то смутно. 
Сложности: Найти опечатку. При парсинге указал list = xd.GetElementsByTagName("oceans"); Целый вечер не мог понять, почему выходит Error. А у меня в базе поле называется ocean... 
Комментарии: Нормально. 
36 Клиентский флот - Класс ServerInfo 00:25:00 20 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Создал новый класс ServerInfo. Потренировался в рефакторинге кода на примере созданных классов. Вспомнил на практике теорию о наследовании в ООП. 
Сложности: Ничего 
Комментарии: У матросов нет вопросов))) 
37 Клиентский флот - Класс ServerShip 00:34:41 20 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Создал класс ServerShip. Изменил класс Map и Ocean для доступа к их полям. Протестировал вызов запроса ?do=ship 
Сложности: Ничего 
Комментарии: Все-таки немного путанно с постоянным изменением модификаторов доступа в классах для полей и методов.  
38 Клиентский флот - Класс ServerFire 00:31:08 19 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 45 мин. [Показать отчёт]
Научился: Создал новый класс для работы с функцией fire на сервере. Реализовал вызов нового класса из основной программы, результат - выстрелы выполняются только если есть "живые" корабли и они не охлаждаются. 
Сложности: Ничего 
Комментарии: Спасибо за урок 
39 Клиентский флот - Класс ServerGame 00:37:13 18 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 50 мин. [Показать отчёт]
Научился: Создал и протестировал работу класса ServerGame. Изменил описание экземпляра этого класса в начале класса программы. 
Сложности: Ничего 
Комментарии: Вопросов нет. Работает. 
40 Одинокий капитан - Прицел 00:16:57 18 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Доработал классы Box, Map. Добавил новые методы для отображения действий на поле боя. Нарисовал картинку прицела. 
Сложности: Осталось вывести рисунки в игру 
Комментарии: Нет 
41 Одинокий капитан - Выстрелы 00:15:24 18 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 30 мин. [Показать отчёт]
Научился: Были созданы новые методы в классах Box, Ocean, Map. А также доработаны методы для вывода изображений на поле. 
Сложности: Ничего 
Комментарии: Нет 
42 Одинокий капитан - Победа! 00:25:02 18 чел. ★ 5 Done
  Отчёт отправил: 6282. Михаил Решено за 40 мин. [Показать отчёт]
Научился: добавил на форму Таймер, в котором выполняется периодические вызовы функций в зависимости от статуса игры. Соответствующие функции doInfo() и doGame() соединяются с сервером и отправляют нужные запросы 
Сложности: Ничего 
Комментарии: Нет 
43 Финишная миля. Перезагрузка. 00:04:15 17 чел. ★ 4.8 Done
  Отчёт отправил: 6282. Михаил Решено за 20 мин. [Показать отчёт]
Научился: Добавил небольшую функцию do_restart() в файл battle.php для очистки таблиц в базе. 
Сложности: Ничего 
Комментарии: Нет. 
44 Финишная миля. Мой океан. 00:42:18 16 чел. ★ 4.9 $
45 Финишная миля. Найти победителя 00:20:28 16 чел. ★ 4.9 $
46 Свежий взгляд. Схема проекта. 00:14:46 15 чел. ★ 4.9 $
47 Свежий взгляд. Управление из таймера. 00:11:34 15 чел. ★ 5 $
48 Свежий взгляд. Ожидание запуска. 00:17:02 15 чел. ★ 5 $
49 Свежий взгляд. Размещение кораблей. 00:18:37 15 чел. ★ 5 $
50 Свежий взгляд. Завершение проекта. 00:21:42 15 чел. ★ 5 $
51 ФИНАЛЬНЫЙ УРОК. 00:03:29 8 чел. ★ 5 $
52 VIP урок. Змейка 01:08:56 1 чел. ★ 5 $
  Итого:   52 видеоурока общей продолжительностью 20 час. 53 мин. 1 чел. ★ 4.95  
  Финалисты:   Ильшат .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: На этом уроке поиграл с друзьями в собственную игру
Трудности: Найти людей для игры в Морской флот.
Курс был очень долгим и изматывающим, но при этом, конечно, очень полезным. Я очень рад, что прошел этот путь до конца!
Смотреть видеозапись: https://yadi.sk/i/1TKrvBpnkfJWB
Научился: На курсе изучил php, mysql, и , конечно, программирование на с#. Узнал множество разных технологий и научился их совместно использовать.
Трудности: Дождаться тишины.
Спасибо за великолепный курс! Очень все понравилось! Много узнал нового и интересного! Теперь надо пробовать придумать на этой основе что-то свое. Оказывается не нажал в youtube кнопку publish
Смотреть видеозапись: https://youtu.be/VBVSqRQYWpo