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

Формула программиста
основатель — Волосатов Евгений Витольдович
Шахматная олимпиада: вторая часть
Вебинар «Решение задач второй шахматной олимпиады» начнётся через 12 час. 18 мин.

Морской Флот

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


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


2500 p.


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

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

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

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Записывать видео :)
Трудности: Весь курс был очень интересным. Всем советую.
Жаль только что анимацию не доприкрутили. А самому уже лень :)
Смотреть видеозапись: https://www.youtube.com/watch?v=yV75zD3JcXg
Научился: В очередной раз записывать видеообзор
Трудности: придумать, что было самым сложным
Ну что хочется сказать, спасибо за курс! Очень, ёмкий, насыщенный полезный! Переплетение технологий легко наглядно и просто. Всем рекомендую)