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

Формула программиста
основатель — Волосатов Евгений Витольдович
1-2-3 мая - Создай online игру!
Вебинар «Карточки памяти на Android» начнётся через 1  день 17 час. 32 мин.

Морской Флот

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


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


Хочу купить!

Купить в рассрочку за мегахеши

Цена: 3000 p.


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

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:22:00 61 чел. ★ 4.9 Done
  Мы начинаем создание многопользовательской игры "Морской Бой".
В игру можно будет играть одновременно четырём участникам.
Будет реализована клиентская часть с графическим интерфейсом на C#.
Будет разработан протокол общения клиентских программ с сервером.
Будет спроектирована и создана серверная база данных на MySQL.
Будет написана серверная часть отработки протокола на PHP.
Будет создан клиент-класс отработки протокола на C#.
Будет реализована анимация всех событий в игре.
На этом уроке рассказано о структуре проекта.

Отчёт отправил: 8275. Tekashnik Выполнено за 3 час. 33 мин. [Показать отчёт]
Научился: Рисовать в GIMP 
Сложности: Рисовать в GIMP 
Комментарии: Как же это не просто рисовать, столько мучился долго, и такая фигня получилась.... эх... 
2 Интерфейс - Первый кораблик 00:32:33 51 чел. ★ 4.9 Done
  На этом уроке мы начнём создание проекта -
создадим проект, настроим форму, прикрепим иконку.
На самой форме разместим главную картинку - pictureMain.
А ещё нарисуем 4 картинки и добавим их в ресурсы проекта.
Далее создадим графику, подготовим картинки
и научимся их выводить на основную картинку.
Под конец урока сделаем размещение корабликов по щелчку мышки.
Отчёт отправил: 8275. Tekashnik Выполнено за 35 мин. [Показать отчёт]
Научился: Выводить картинки из ресурсов с помощью PictureBox по клику мышки 
Сложности: Сложным было думать о том, что было самым сложным. 
Комментарии: Ну что, погнали впереди еще ~50 уроков, удачи мне :) 
3 Интерфейс - А на море корабли 00:22:26 49 чел. ★ 4.9 Done
  На этом уроке мы нарисуем море с кораблями.
Пока у нас не будет матриц, размещение объектов будет случайным.
В конце урока напишем алгоритм позиционирования курсора мышки
над нашим морем и сделаем размещение "ударов" по морю.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 02 мин. [Показать отчёт]
Научился: Ещё лучше работать с графическими объектами 
Сложности: Сложным было остановиться тыкать по полю, рисуя взрывы 
Комментарии: Красиво получается, у меня картинки по 128*128, поэтому применяю сжатие, позже разожму посмотрю на гигантский морской флот 
4 Графика - Карта Морского флота 00:31:14 38 чел. ★ 5 Done
  На этом уроке мы создадим карту морского флота.
Это будет двумерный массив, в каждой клетке
которого записано одно из четырёх значений.
Мы напишем алгоритм размещения кораблей
и сделаем отображение карты на экране.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 04 мин. [Показать отчёт]
Научился: Отображать корабли на поле только в корректных местах 
Сложности: Придумывть, что было самым сложным 
Комментарии: Хм... а красибо получается, всё никак не могу народоваться своим рисункам)) 
5 Графика - Выстрелы по Кораблям 00:14:31 37 чел. ★ 5 Done
  На этом уроке мы наконец-таки сможем немножко поиграть
с компьютером и потопить весь компьютерный флот! :)
Сначала мы уберём вывод кораблей на экран,
потом переделаем функцию обработки клика мышки.
Добавим проверку точности удара и вывода результата.

Отчёт отправил: 8275. Tekashnik Выполнено за 39 мин. [Показать отчёт]
Научился: Продолжил разрабатывать проект Морской флот 
Сложности: Попасть во все 15 кораблей на поле 12х12. Конечно же я смухлевал)) 
Комментарии: Надо наращивать темп, а то так и не успею. 
6 Графика - Рефакторинг 00:26:11 36 чел. ★ 4.8 Done
  На этом уроке мы займёмся рефакторингом кода.
Создадим класс Graph, в который перенесём все
операции, связанные с графикой.
Код станет чище, понятней, хотя придётся
повозиться с его оптимизацией.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 16 мин. [Показать отчёт]
Научился: Понял, что такое рефакторинг и с чем его едят 
Сложности: Сложно было не запутаться, куча всяких параметров и функций 
Комментарии: Хотелось бы еще, чтобы как то сохранялись промежуточные проекты, с разными версиями, нужно погуглить как это сделать 
7 Анимация - Полёт снаряда 00:08:33 32 чел. ★ 4.8 Done
  На этом уроке мы составим список всех анимаций, которые будут в нашей игре. Твоя задача - нарисовать все кадры полёта снаряда.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 23 мин. [Показать отчёт]
Научился: Подтянул свои навыки работы с GIMPом 
Сложности: Рисовать для меня всегда было не просто) 
Комментарии: Жду не дождусь, посмотреть как это у меня в анимации получится 
8 Анимация - Отображение кадров 00:31:33 32 чел. ★ 4.9 Done
  На этом уроке мы создадим первую анимацию в нашем проекте.
Это будет летящий снаряд. Мы рассмотрим несколько способов его отображения, а также добавим его перемещение.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 11 мин. [Показать отчёт]
Научился: Двигать снаряд 
Сложности: Было очень интересно 
Комментарии: Очень забавна получается, мне нравится)) 
9 Анимация - Полёт по таймеру 00:28:19 31 чел. ★ 4.9 Done
  На этом уроке мы добавим таймер и реализуем полёт снаряда через функцию его события.
Для этого в функцию таймера нужно будет разместить внутренности цикла,
а также добавить проверки на начало и окончание полёта снаряда.
Потом мы оформим полёт снаряда в ту клетку моря, по которой был щелчёк мышки.
Отчёт отправил: 8275. Tekashnik Выполнено за 47 мин. [Показать отчёт]
Научился: Заставить снаряд лететь так как я хочу 
Сложности: Сделать так что бы последние 10 изображений рисовались на одном месте 
Комментарии: Перерисовал свои бомбы, наверное придётся ещё раз)) чтобы они могли с любых мест летатть 
10 Архитектура - Перезагрузка проекта 00:24:35 31 чел. ★ 5 Done
  На этом уроке мы начнём всё заново.
Но уже на другом, качественно новом уровне.
Проработаем архитектуру будущей программы.
Создадим новый проект и создадим класс Ocean.
Пока программа будет простой, самое главное
в этом уроке - понять архитектуру проекта,
увидеть весь лес как бы сверху.
Отчёт отправил: 8275. Tekashnik Выполнено за 58 мин. [Показать отчёт]
Научился: Начинать проект заново 
Сложности: Глустно было расставаться с проетом 
Комментарии: Ну давайте уже перезагрузим нашу машину) 
11 Архитектура - Карта Пиратов 00:34:23 31 чел. ★ 5 Done
  На этом уроке мы создадим карту Пиратов,
определимся с условными обозначениями (enum),
определим отдельные матрицы для размещения
кораблей и отметки совершённых по ним ударов.
Создадим метод для размещения кораблей
и потестируем всё это в пошаговом режиме.
Также добавим статистические переменные,
настоящие пираты должны знать сколько
было кораблей и сколько осталось.
Отчёт отправил: 8275. Tekashnik Выполнено за 59 мин. [Показать отчёт]
Научился: Созавать вложенные в друг друга классы 
Сложности: Всё было пока гармонично 
Комментарии: С каждым разом, комментарии всё сложнее и сложнее писать 
12 Архитектура - Наследие картинок 00:31:55 31 чел. ★ 4.9 Done
  На этом уроке мы займёмся картинками.
Создадим класс Box, унаследованный от PictureBox
и настроим его для использования в нашем проекте.
Далее, из него мы унаследуем классы для каждой из картинок.
Самое сложное в этом уроке - уловить идею наследования
и понять, почему и как эти картинки выводятся на экран.
Отчёт отправил: 8275. Tekashnik Выполнено за 57 мин. [Показать отчёт]
Научился: Наследовать классы от класоов и от классов 
Сложности: Понимать, что и как и куда и сколько и где наследуестя 
Комментарии: Так как у мен все картинки в проетк 128х128, то пришлось ещё дописывать SizeMode и BackgroundImageLayout 
13 Архитектура - Фабрика картинок 00:16:15 31 чел. ★ 5 Done
  На этом уроке мы настроим вывод карты на экран.
Нам понадобится фабрика картинок - статический
метод Box.Create и волшебная функция превращения
EnumShips x EnumFires в EnumIcons.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 22 мин. [Показать отчёт]
Научился: Искать ошибки, которые допустил, на более ранней стадии 
Сложности: Искать ошибки, которые допустил, на более ранней стадии 
Комментарии: На самом деле наряду с SizeMode также хорошо отрабатывает и BackgroungImageLayout. Поигрался с размерами иконок, получилось красиво (оригинальный размер 128х128, и босбы тоже в этом разрешении рисовал ;) ) 
14 Архитектура - Мышкой по кораблям 00:21:27 31 чел. ★ 4.9 Done
  На этом уроке мы научимся по щелчку мышки стрелять по кораблям.
Для этого нам понадобится создать обработчик MouseClick,
и подцепить его к каждой картинке. Используя делегаты
мы будем свистать всех на верх - до класса Form1,
из которого будем спускаться по иерархии опять вниз,
для пометки выстрела и отображения его на карте.
Отчёт отправил: 8275. Tekashnik Выполнено за 46 мин. [Показать отчёт]
Научился: Создавать вложенные методы наследуемых классов 
Сложности: Было очень интересно, подниматься и спускаться по иерархии классов программы 
Комментарии: Перерисовал в очередной раз рисуток Fail. 
15 База Морского Флота - INFO 00:11:16 37 чел. ★ 4.8 Done
  На этом уроке мы начнём проектировать Базу данных серверного флота.
Пока мы создадим эскиз только для одной таблицы - info,
в которой будет поле status. Для него мы составим схему состояний,
и условия перехода из одного состояния в другое.

Отчёт отправил: 8275. Tekashnik Выполнено за 39 мин. [Показать отчёт]
Научился: Разрабатывать схему состояний процесса  
Сложности: Рисовать) 
Комментарии: Евгий Витольдович научит вас Родину любить, ну и блок схемы заодним 
16 База Морского Флота - SHIP 00:10:47 37 чел. ★ 4.8 Done
  На этом уроке мы создадим таблицу для хранения координат
кораблей и их состояния. В таблице ship будет 5 полей.
Отдельное внимание уделено вопросу перезарядки пушек.
Отчёт отправил: 8275. Tekashnik Выполнено за 45 мин. [Показать отчёт]
Научился: Опять, проектировать переходные процессы объекта 
Сложности: Рисовать 
Комментарии: Ну и художник из меня выйдет, после курса, и картинки рисую, и схемы, чувствую, что скоро предстоит рисовать с утроенной силой. 
17 База Морского Флота - GAME 00:12:00 35 чел. ★ 4.9 Done
  На этом уроке мы создадим таблицу событий в нашей игре,
в которой будут хранится транзакции всех выстрелов
и их результатов. В таблице game будет 6 полей,
при каждом выстреле в неё будет добавляться две записи.
Отчёт отправил: 8275. Tekashnik Выполнено за 34 мин. [Показать отчёт]
Научился: Составлять таблицы 
Сложности: Составлять таблицы 
Комментарии: Нелёгкая это работа составлять таблицы 
18 База Морского Флота - phpMyAdmin 00:12:49 35 чел. ★ 4.9 Done
  На этом уроке мы наконец-таки возьмёмся за практику.
Запустим phpMyAdmin и создадим в нём все три таблицы.

Отчёт отправил: 8275. Tekashnik Выполнено за 54 мин. [Показать отчёт]
Научился: Работать с phpMyAdmin 
Сложности: Придумывать, что было самым сложным 
Комментарии: И снова в бой, покой нам только снится) 
19 База Морского флота - Экспресс SQL 00:40:56 33 чел. ★ 4.9 Done
  На этом уроке мы сделаем краткий экспресс-обзор языка структурированных запросов. Кратко рассмотрим все основные команды SQL.
Отчёт отправил: 8275. Tekashnik Выполнено за 56 мин. [Показать отчёт]
Научился: Работать с языком SQL и его запросами 
Сложности: Корректно составлять запросы 
Комментарии: Очень полезный навык 
20 База Морского Флота - Запросы SQL 00:41:23 32 чел. ★ 4.9 Done
  На этом уроке мы от души повеселимся с таблицами info и ship -
посоставляем самые разные запросы к ним, которые в будущем
нам пригодятся при проектировании Серверного протокола.
Эти запросы будут выполняться в PHP на серверной
части при обработке клиентских запросов.
Отчёт отправил: 8275. Tekashnik Выполнено за 59 мин. [Показать отчёт]
Научился: Составлять разноогбазные SQL запросы 
Сложности: Сложно в 3 часа ночи составлять SQL запросы 
Комментарии: Даёшь больше запросов сложных и разных с union, join и т.п. 
21 Протокол - Список команд 00:12:40 26 чел. ★ 4.7 Done
  На этом уроке мы начнём проектировать протокол общения клиентской программы с сервеной частью. Перечислим все клиентские команды и кратко пройдёмся по каждой. Составить xml-формат сервеных ответов нужно будет самостоятельно.
Отчёт отправил: 8275. Tekashnik Выполнено за 49 мин. [Показать отчёт]
Научился: Составлять xml  
Сложности: Не уверен, что получилось, то чего просили 
Комментарии: в 4 часа ночи туго для творческих заданий про xml 
22 Протокол - Команды INFO и SHIP 00:53:55 25 чел. ★ 5 Done
  На этом уроке мы проработаем клиентский запрос "info" и "ship".
Выпишем все варианты ответа сервера, и, самое главное,
напишем SQL-запросы для проверки всех возможных случаев.
Урок сложный, но после такой проработки создание
серверного РНР скрипта будет сплошным удовольствием :)
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 23 мин. [Показать отчёт]
Научился: Описывать взаимодействие КЛИЕНТ-СЕРВЕР-БД 
Сложности: Было очень интересно, а как это вообще происходит) 
Комментарии: Можно сказать заглянул за ширму в театре, и посмотрел на подготовку, сложного представления) 
23 Протокол - Команда FIRE 00:56:38 25 чел. ★ 5 Done
  На этом уроке мы проработаем клиентский запрос "fire".
Выпишем все варианты ответа сервера, и, самое главное,
напишем SQL-запросы для проверки всех возможных случаев.
Во второй части урока мы три раза пройдёмся по алгоритму,
выполняя все написанные SQL запросы.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 29 мин. [Показать отчёт]
Научился: Опять же писать протол взаимодействия разных систем 
Сложности: ОЧень долго слушать)) 
Комментарии: Погнали бомбить!!! 
24 Протокол - Команда GAME 00:11:13 25 чел. ★ 5 Done
  На этом уроке мы разберём последнюю команду протокола - game.
Команда простая, но очень важная - именно она будет чаще всего
выполняться, благодаря ей все клиенты будут знать,
что происходит на море, что куда летит и с каким результатом.
Отчёт отправил: 8275. Tekashnik Выполнено за 28 мин. [Показать отчёт]
Научился: Закрепили написание протокола 
Сложности: Написать, что было самым сложным 
Комментарии: Ждём недождёмся PHP)))) 
25 Серверный флот - FTP подключение 00:06:50 25 чел. ★ 5 Done
  На этом уроке мы подключимся к FTP серверу,
создадим там свою папку и создадим файл init.php.
Отчёт отправил: 8275. Tekashnik Выполнено за 35 мин. [Показать отчёт]
Научился: Создавать Alias для Apache сервера WAMP 
Сложности: Было всё ровно, кроме файла конфигурации, он для созданного Alias блокировал всё, пришлось править 
Комментарии: ФТП пока не использовал, так как на токальном сервере, но с этим проблем точно не вознитнет) ФТП мой дом родной 
26 Серверный флот - Как PHP дружит с MySQL 00:07:35 24 чел. ★ 5 Done
  На этом уроке мы создадим на РНР подключение к базе данных MySQL.
Организуем подключение, выберем базу данных,
выполним запрос, и напечатеем результат.
Отчёт отправил: 8275. Tekashnik Выполнено за 44 мин. [Показать отчёт]
Научился: Писать скрипт PHP 
Сложности: Почемуто сразу не заработало, а только полсле того как вместо , написал  
Комментарии: Всё интересней и интересней) 
27 Серверный флот - Рефакторинг РНР-кода 00:20:37 24 чел. ★ 5 Done
  На этом уроке мы займёмся рефакторингом, если у кого-нибудь
повернётся язык назвать этим словом то, чем мы здесь будем заниматься...
Мы переделаем файл init.php в подключаемый -
в нём будет только подключение к базе и две полезные функции.
В конце урока мы создадим файл battle.php,
в котором сделаем include и протестируем.
Отчёт отправил: 8275. Tekashnik Выполнено за 32 мин. [Показать отчёт]
Научился: Писать код на PHP 
Сложности: Набирать код php 
Комментарии: Надо бы как нибудь php поучить) 
28 Серверный флот - Функция do_info 00:11:33 24 чел. ★ 5 Done
  На этом уроке мы создадим структуру файла battle.php
и напишем заглушки для всех функций протокола.
Далее, реализуем команду info в функции do_info()
Отчёт отправил: 8275. Tekashnik Выполнено за 41 мин. [Показать отчёт]
Научился: Обрабатывать запросы php с помощью строки браузера 
Сложности: было очень интересно 
Комментарии: Мне нравится, с таким я не работал ещё 
29 Серверный флот - Капитан очевидность 00:19:04 24 чел. ★ 5 Done
  На этом уроке мы исправим несколько мелких недочётов.
Добавим в таблицу info поле oceans, соответственно изменим функцию do_info().
Добавим в файл init.php две новые функции select_scalar() и now_ticks ().
Также нам придётся изменить тип полей для хранения тиков с int на bigint.
Отчёт отправил: 8275. Tekashnik Выполнено за 53 мин. [Показать отчёт]
Научился: Изменять разные структуры проекта, на этапе разработки 
Сложности: Добиться разных значений тиков (сервер то локальный), всё мгновенно. 
Комментарии: Есть ли какие то настройки у Apache, которые имитируют задержку, чтобы выглядело, как удалённый хостинг 
30 Серверный флот - Функция do_ship 00:50:43 24 чел. ★ 5 Done
  На этом уроке мы напишем функцию do_ship().
Разберём ещё раз все возможные ошибки расстановки кораблей,
сформируем код и текст ошибки, который вернём в xml.
После успешного размещения всех кораблей
мы поменяем статус игры на "play" и начнём уже играть.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 47 мин. [Показать отчёт]
Научился: Писать код PHP в перемешку с SQL 
Сложности: Не запутаться во всём этом многообразии 
Комментарии: Серьёзная работа, надеюсь, что это всё заработает) 
31 Серверный флот - Функция do_fire 00:46:57 24 чел. ★ 4.9 Done
  На этом уроке мы напишем функцию do_fire().
Разберём ещё раз все возможные ошибки при выполнении выстрела,
сформируем код и текст ошибки, который вернём в xml.
После успешного выстрела мы проверим количество оставшихся океанов.
В конце функции добавим все транзакции в таблицу game.
Отчёт отправил: 8275. Tekashnik Выполнено за 2 час. 43 мин. [Показать отчёт]
Научился: Искать ошибки в php коде 
Сложности: Были проблемы с microtime() разобрался 
Комментарии: Было круто, всё меняется через строку браузера)) + Шестая звёздочка 
32 Серверный флот - Функция do_game 00:14:08 23 чел. ★ 5 Done
  На этом уроке мы напишем функцию do_game().
Будем получать список всех выстрелов с результатами.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 16 мин. [Показать отчёт]
Научился: Писать код php вместе с sql запросами 
Сложности: Написать, что было самым сложным 
Комментарии: Вот и закончился блок php, даже немного грустно)) 
33 ПОЛУФИНАЛЬНЫЙ УРОК. Большая игра 00:19:58 22 чел. ★ 5 Done
  На этом уроке мы поиграем в Морской флот через адресную строку.
Устроим соревнование из шести участников. Битва будет что надо! :)

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

В этом уроке нужно поиграть самому и ЗАПИСАТЬ видеообзор игры.
Отчёт отправил: 8275. Tekashnik Выполнено за 3 час. 45 мин. [Показать отчёт]
Научился: Писать php скрипт с GET запросом 
Сложности: Сложно было писать код php незнакомый синтаксис, много опечаток, потом поиск ошибок 
Комментарии: В итоге получилось и map.php написать и немного его облагородить, чтобы не в строке браузера писать а уже прямо на странице, в общем долго мучался, но что то получилось)) Ещё и ЕВ заставил всё переделать ;) 
Видеообзор: https://youtu.be/vZIkP18Vpjg
34 Клиентский флот - Подключение к серверу 00:16:05 24 чел. ★ 5 Done
  На этом уроке мы создадим класс Server,
который будет подключаться к нашему PHP скрипту.
Будет отправлять запрос и получать ответ.

Примечание
Если ваша сеть использует для подключения к интернету
особые настройки прокси-сервера, то необходимо добавить
в программу считывание системных Proxy-настроек, см. пример.
Отчёт отправил: 8275. Tekashnik Выполнено за 37 мин. [Показать отчёт]
Научился: Отправлять запросы из C# на php сервер 
Сложности: Придумать, что было самым сложным 
Комментарии: О! Наконец-то C#, я уж и забыл, что мы что то на нём писали ;) 
35 Клиентский флот - Парсинг XML 00:21:34 21 чел. ★ 5 Done
  На этом уроке мы научимся парсить XML документ.
Мы напишем метод RequestInfo(), который выудит
все нужные значения из XML-документы и вернёт
их в основную программу.
Отчёт отправил: 8275. Tekashnik Выполнено за 46 мин. [Показать отчёт]
Научился: Парсить XMLфайлы 
Сложности: Придумывать самое сложное 
Комментарии: Очень полезный урок, для практического применения в любых областях, парсить, это круто 
36 Клиентский флот - Класс ServerInfo 00:25:00 21 чел. ★ 5 Done
  На этом уроке мы займёмся рефакторингом -
вынесем повторяющиеся действия в отдельные методы,
уберём параметры метода RequestInfo(),
запишем их во внутренние поля класса.
Потом вынесем всё хозяйство для Info-запроса
в отдельный класс ServerInfo.
Оптимизируем ещё некоторые процедуры
и уберём try-блоки в базовый класс.
Отчёт отправил: 8275. Tekashnik Выполнено за 56 мин. [Показать отчёт]
Научился: Рефакторить код 
Сложности: Не запутатся, что где удаляется, и что куда дописыватся, но после того как разобрался, всё не так страшно выглядело 
Комментарии: Всем добра 
37 Клиентский флот - Класс ServerShip 00:34:41 21 чел. ★ 5 Done
  На этом уроке мы создадим класс ServerShip
для размещения кораблей. В нём будет
вспомогательный метод ExtractShipCoords(),
который матрицу кораблей сконвертирует
в строчку GET данных для передачи их
в РНР скрипт. Также будут некоторые сложности
для получения этой матрицы в коде основной
программы, нам придётся добавить новый
метод в класс Ocean, изменить права
доступа к матрице ships в классе Map.
Отчёт отправил: 8275. Tekashnik Выполнено за 59 мин. [Показать отчёт]
Научился: На лету менять Php код и видеть плоды этого действия,  
Сложности: Не запутаться, во всех изменениях 
Комментарии: Ещё немного, ещё чуть чуть... 
38 Клиентский флот - Класс ServerFire 00:31:08 20 чел. ★ 5 Done
  На этом уроке мы создадим класс ServerFire.
Мы научим нашу программу отправлять на сервер
приказы о выстрелах! Правда, мы пока ещё не
будем знать о результатах выстрела.
Зато мы доработаем РНР функцию, чтобы она
в XML возвращала координаты выстрелившего
корабля, чтобы организовать правильную
анимацию.

Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 15 мин. [Показать отчёт]
Научился: Взаимодействие php и C# 
Сложности: не запутаться 
Комментарии: Уж полночь близится.... 
39 Клиентский флот - Класс ServerGame 00:37:13 19 чел. ★ 5 Done
  На этом уроке мы проработаем клиентский запрос "game"
для получения списка транзакций всех участников игры.
Мы создадим класс ServerGame, создадим структуру Actions,
доработаем методы из базового класса и реализуем
заполнение массива считанными с XML данными.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 23 мин. [Показать отчёт]
Научился: Парсить массивы структур 
Сложности: Найти ошибку в php, которую я допустил в функции game 
Комментарии: Ещё немного ещё чуть чуть, последний бой он трудный самый... 
40 Одинокий капитан - Прицел 00:16:57 19 чел. ★ 5 Done
  На этом уроке мы нарисуем новую пиктограмму
для нашей игры - знак прицела. И пропишем
его добавление в уже созданные классы.
Это пиктограмма будет использоваться для
отметки полей, по которым сделан выстрел,
но пока ещё не известен результат.
Отчёт отправил: 8275. Tekashnik Выполнено за 37 мин. [Показать отчёт]
Научился: Рисовать мишень 
Сложности: Придумать, что было самым сложным 
Комментарии: Ещё немного и будем стрелять) 
41 Одинокий капитан - Выстрелы 00:15:24 19 чел. ★ 5 Done
  На этом уроке мы обработаем массив actions
со списком полученных от сервера транзакций.
Сделаем отображение результатов, для этого
придётся исправить мелкие ошибки прошлого
урока в классе Box: Create(EnumIcons icon)
Отчёт отправил: 8275. Tekashnik Выполнено за 34 мин. [Показать отчёт]
Научился: Модернизировать код, согласно установленной концепции 
Сложности: Найти в коде, где не отображать корабли, чтобы интересно было стрелять)) 
Комментарии: Всё интересней и интересней. 
42 Одинокий капитан - Победа! 00:25:02 19 чел. ★ 5 Done
  На этом уроке мы добавим на форму таймер
и флаг состояния игры. После этого мы поиграем
в одинокого капитана - будем стрелять
по всем океанам без ответного огня.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 34 мин. [Показать отчёт]
Научился: Искать ошибки в php 
Сложности: Найти почему у меня статус stop не изменяется на статус wait 
Комментарии: С помощью поиска выяснил что у менв php нет места где где быпроисходило SET status = "wait". Сначала сам его воткнул, а потом нашёл в предидущих уроках))) 
43 Финишная миля. Перезагрузка. 00:04:15 18 чел. ★ 4.8 Done
  На этом уроке мы добавим функцию перезапуска в РНР файл.
Отчёт отправил: 8275. Tekashnik Выполнено за 6 мин. [Показать отчёт]
Научился: рефакторить php 
Сложности: В этом уроки ничего, потому что в прошлом, я сам себе всё это разжевал) 
Комментарии: ))) Эх надо было этот урок сначала как то посмотреть, а потом и мучаться с предидущим не пришлось бы, хотя, наверное это мучение и есть осознание и погружение) 
44 Финишная миля. Мой океан. 00:42:18 17 чел. ★ 4.9 Done
  На этом уроке мы добавим две важные функции в наш проект.
1. Определение номера свободного океана при запуске.
2. Случайное размещение кораблей на выбранном океане.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 23 мин. [Показать отчёт]
Научился: Переписывать много кода 
Сложности: За всем уследить и не запутаться 
Комментарии: Вот это мощно, наудаляли, донаписывали, и всё такое 
45 Финишная миля. Найти победителя 00:20:28 16 чел. ★ 4.9 Done
  На этом уроке мы наконец-таки немножко поиграем :)
Потом сделаем определение победителя.
Из-за чего в конец запутаемся в коде класса Form1.
Примем решение на следующем уроке переписать его.
Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 56 мин. [Показать отчёт]
Научился: Дебагить php и С# код одновременно 
Сложности: Дебагить php и С# код одновременно 
Комментарии: Было, круто, почти все баги исправил сам) 
46 Свежий взгляд. Схема проекта. 00:14:46 15 чел. ★ 4.9 Done
  На этом уроке мы опять начнём всё сызнова.
Рассмотрим шесть основных состояний нашей программы.
Создадим новый проект и настроим его.

Отчёт отправил: 8275. Tekashnik Выполнено за 34 мин. [Показать отчёт]
Научился: Создавать новый проект ;) 
Сложности: Найти картинку 
Комментарии: Аааааа!!!! Опять всё заново!! 
47 Свежий взгляд. Управление из таймера. 00:11:34 15 чел. ★ 5 Done
  На этом уроке мы заложим фундамент
нашей программы - шесть методов do*()
и вызов их из таймера.

Отчёт отправил: 8275. Tekashnik Выполнено за 15 мин. [Показать отчёт]
Научился: Облагораживать код программы 
Сложности: Придумать, что было самым сложным 
Комментарии: Очень хороший урок, вот прям, после него так спокойно на душе стало, всё по полочкам, разложилось, а раньше, немного сумбурно всё было, что ... куда .. откуда ... и снова куда. Просто браво за подход) ну и шестая звёздочка! 
48 Свежий взгляд. Ожидание запуска. 00:17:02 15 чел. ★ 5 Done
  На этом уроке мы напишем метод showMessage()
для отображения сообщений игры.
Далее, мы добавим в наш проект
уже написанные классы Server* и Map.
Также разместим кнопку Start для запуска игры.
Отчёт отправил: 8275. Tekashnik Выполнено за 46 мин. [Показать отчёт]
Научился: Переносить различные операторы из функции в функции 
Сложности: Придумать, что было самым сложным 
Комментарии: а конец всё ближе и ближе 
49 Свежий взгляд. Размещение кораблей. 00:18:37 15 чел. ★ 5 Done
  На этом уроке мы напишем метод doShip() для размещения кораблей.
Для этого нам потребуется добавить уже написанные классы Box и Ocean.
Также придётся немного поменять функцию создания и размещения кораблей.
Отчёт отправил: 8275. Tekashnik Выполнено за 49 мин. [Показать отчёт]
Научился: Устранять проблему с apache сервером 
Сложности: Не запутаться) 
Комментарии: А снаряды то полетят? а то урок один остался, а полёт был только давно и не в игре 
50 Свежий взгляд. Завершение проекта. 00:21:42 15 чел. ★ 5 Done
  На этом уроке МЫ ЗАКОНЧИМ создание программы.
Напишем обработку состояний play и stop.
Отчёт отправил: 8275. Tekashnik Выполнено за 56 мин. [Показать отчёт]
Научился: Искать баги программы 
Сложности: Заканчивать было сложно 
Комментарии: Очень итересный баг, если запустить на 4-х экранах игру и только после этого спинуть статус в wait то они с кучей ошибок, но все поставят на 0 океан и будут ждать 1ого игрока) Жаль, что не реализовали полёт снарядов, но это видимо для самостоятельной работы, так как отдально реализация была. Спасибо Автору) С меня ещё видеообзор 
51 ФИНАЛЬНЫЙ УРОК. 00:03:29 8 чел. ★ 5 Done
  На этом уроке мы поиграем по сети с участниками вебинара.
Твоя задача - записать видеообзор созданного проекта.

Какой курс ты будешь проходить следующим?
Отчёт отправил: 8275. Tekashnik Выполнено за 48 мин. [Показать отчёт]
Научился: В очередной раз записывать видеообзор 
Сложности: придумать, что было самым сложным 
Комментарии: Ну что хочется сказать, спасибо за курс! Очень, ёмкий, насыщенный полезный! Переплетение технологий легко наглядно и просто. Всем рекомендую) 
Видеообзор: https://youtu.be/9eZbbzP2GPQ
52 VIP урок. Змейка 01:08:56 2 чел. ★ 5 Done
  Создаём популярную игру «Змейка».
На примере простых объектов демонстрация основ ООП.
Отчёт отправил: 8275. Tekashnik Выполнено за 3 час. 02 мин. [Показать отчёт]
Научился: Создавть игру змейка 
Сложности: Найти время 
Комментарии: Порисовал в ГИМПе)) Интересный миникурсик! И судя по всему последний улиточный урок. Первая улитка, которая дошла до конца))) 
  Итого:   52 видеоурока общей продолжительностью 20 час. 53 мин. 2 чел. ★ 4.95  
  Финалисты:   Ильшат,   Tekashnik .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: На этом уроке поиграл с друзьями в собственную игру
Трудности: Найти людей для игры в Морской флот.
Курс был очень долгим и изматывающим, но при этом, конечно, очень полезным. Я очень рад, что прошел этот путь до конца!
Смотреть видеозапись: https://yadi.sk/i/1TKrvBpnkfJWB
Научился: Записывать видеообзор
Трудности: Собраться с духом и найти общий язык с фантазией.
Первооткрывателем (то есть первоокончателем) этого курса быть не получилось. Но я его усе-таки закончила!