Обучение c# видеоуроки

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

Микроигры

В этом видео-курсе мы будем создавать более сложные и более интересные игровые программы, которые потребуют от программиста не только знание визуальных компонентов, но и навыки составления алгоритмов для реализации логики игры и/или искусственного интеллекта.

По мере обучения мы создадим знакомые тебе с детства игры:
пятнашки и арканоид, виселица и крестики-нолики,
змейка и шарики 5 в ряд, и даже популярную сейчас игру 2048.
Для каждой из этих игр мы создадим “искусственный интеллект”, поэтому играть с программой будет не так-то просто... :)

В разных играх ты познакомишься с разными алгоритмами:
работа с графикой, переборы вариантов, алгоритм поиска в глубь и в ширину,
работа с массивами и матрицами, динамическое создание визуальных компонентов,
работа с координатами, элементы теории графов и, конечно же,
применение концепций Объектно-Ориентированного Программирования, сейчас без него никуда!

А в конце курса тебя ждёт VIP-урок по созданию микро-шутера "Стрелялка".


Микроигры

Создание более интересных и сложных игровых программ, некоторые игры пишутся за несколько уроков с подробным анализом: составление технического анализа, проектирование интерфейса, создание блок-схемы, формирование отдельных классов, создание и тестирование программы.

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

3,000 руб.


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

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

# Название видеоурока Решило Рейтинг Доступ
1 Игра 15 - Кнопки 00:13:12 73 чел. ★ 4.9 Done
  Отчёт отправил: 7276. Ильшат Решено за 50 мин. [Показать отчёт]
Научился: 1) Размещать объекты на форме с использованием QGridLayout (аналог TableLayoutViewer в Windows Forms). 2) QSignalMapper - отображение сигналов нажатия различных кнопок в один слот-функцию обработчик нажатия ( аналог "одной функции на нажатие любой кнопки" в Windows Forms) 
Сложности: Создать табличное размещение кнопок на форме и реализовать обработку нажатия в единственной функции-обработчике. 
Комментарии: Короткий и ясный урок, идем дальше. 
2 Игра 15 - Алгоритм 00:42:15 68 чел. ★ 5 Done
  Отчёт отправил: 7276. Ильшат Решено за 2 час. 40 мин. [Показать отчёт]
Научился: Интересному способу случайного перемешивания кнопок в игре 15. 
Сложности: Пройти игру :) 
Комментарии: Понравился способ перемешивания кнопок в функции shift_random(), здорово придумано :) Так же было интересно посмотреть на реализацию функции перемещения кнопок при клике мышкой - решение простое и понятное, без анимаций - сброс значения свойства visible для требуемой кнопки. В этом уроке вновь встретил двумерные массивы, поэтому решил добавить более удобный интерфейс для доступа к данным и поэкспериментировать. Создал класс Matrix в котором в качестве представления данных использовал одномерный динамический массив STL vector, перегрузил оператор () для доступа по индексам строк и столбцов, превратил класс Matrix в шаблон. Мои эксперименты не входили в урок, но были полезными; в итоге, повторил работу с generic кодом. 
3 Игра 15 - Картинка 00:36:03 45 чел. ★ 5 Done
  Отчёт отправил: 7276. Ильшат Решено за 3 час. 10 мин. [Показать отчёт]
Научился: Разрезать картинку на фрагменты. 
Сложности: Абстракции... Вовремя остановиться :D Заметил, что код в играх пятнашки и пазл практически идентичен. Хороший посыл для наследования. Кроме того, в следующих уроках будет игра 2048, где по сути выполняются те же действия с объектами и можно будет обобщить. Но я решил не торопиться и сначала получить конкретные классы всех трех игр и потом уже смотреть есть ли смысл выделять общий интерфейс. 
Комментарии: В уроке убрали одно условие и все - новая игра - пазл! Это здорово. Для игры пятнашки думаю не стоит использовать картинки, отвлекают от сути, а в пазле самое то. Поэтому на скриншотах игра пазл 5 на 5. Вне задания поработал над кодом, потребовалось расширить свой шаблон Matrix для классов без конструктора по умолчанию и для классов с запрещенными операциями копирования, например std::unique_ptr. 
4 2048 - Учимся играть 00:08:33 57 чел. ★ 4.8 Done
  Отчёт отправил: 7276. Ильшат Решено за 1 час. 40 мин. [Показать отчёт]
Научился: Играть в игру 2048. 
Сложности: Набрать 1024 или 2048. 
Комментарии: Интересная игра, захватывает. Ранее не играл в нее. Руководствовался советами Евгения Витольдовича из видеоурока, это сильно помогло. 
5 2048 - Интерфейс 00:39:12 47 чел. ★ 4.9 Done
  Отчёт отправил: 7276. Ильшат Решено за 1 час. 50 мин. [Показать отчёт]
Научился: Обработка события нажатия клавиши, повторил работу с табличной компоновкой виджетов. 
Сложности: Подобрать цвета меток. 
Комментарии: Интересный способ подбора цветов в цикле, правда не совсем точный и непросто подобрать желаемые цвета. 
6 2048 - Логика 01:07:22 40 чел. ★ 4.9 Done
  Отчёт отправил: 7276. Ильшат Решено за 3 час. 50 мин. [Показать отчёт]
Научился: Повторил работу с рекурсией. 
Сложности: Понять работу рекурсивных функций shift и combine, организовать прорисовку меток через самописный делегат и исправить небольшие недочеты с табличной компоновкой. 
Комментарии: Во время написания кода прокачался в некоторых технических аспектах, поработал с "делегатами". В моем случае табличная компоновка не сказывалась на скорости отрисовки матрицы меток, поэтому оставил. Понравились рекурсивные функции - красиво. В итоге, хорошая игра в копилочку, есть куда расширять и улучшать. 
7 Полуфинальный урок 00:23:23 25 чел. ★ 4.8 Done
  Отчёт отправил: 7276. Ильшат Решено за 30 мин. [Показать отчёт]
Научился: Повторил создание видео обзоров. 
Сложности: Не было. 
Комментарии: Хорошие игры получились, спасибо :) 
Видеообзор: https://youtu.be/upZ2p3bJI3M
8 Виселка. Поле чудес 01:07:53 52 чел. ★ 5 Done
  Отчёт отправил: 7276. Ильшат Решено за 3 час. 50 мин. [Показать отчёт]
Научился: 1) Создавать файлы ресурсов. 2) Загружать данные из файла, работать со списком строк. 3) Повторил работу с настройкой интерфейса программы. 
Сложности: Создать желаемый интерфейс программы. 
Комментарии: Данный урок ранее выполнял в предновогоднюю чашку кофе. Для закрепления решил создать новую программу. Написал с нуля, достаточно долго настраивал интерфейс. Целью было создать схожую внешне программу с предновогодней версией. Были проблемы с компоновкой, фоном, рамок вокруг меток. Я принципиально сделал упор на автоматическую компоновку объектов на форме, то есть, без ручного подсчета координат и размеров виджетов. Объекты сами рассчитывают свои размеры, а я лишь задаю описание, например, объект картинка "должен занимать весь левый угол формы", объект загадываемое слово "правую и верхнюю часть формы". В Windows Forms для этого используются Dock, Anchor, TableLayoutPanel. Вообще говоря, думаю следует копать в сторону максимальной изоляции кода формы от кода логики, напрягает их смешивание. На ум приходит использование декларативного описания элементов формы с помощью qml + javascript. Если не ошибаюсь, в C# для этого используется WPF. 
9 Виселка. Блоксхема помощника 00:28:58 29 чел. ★ 5 Done
  Отчёт отправил: 7276. Ильшат Решено за 3 час. 40 мин. [Показать отчёт]
Научился: Повторил работу с формой, созданием блок-схем. 
Сложности: Продумать и создать интерфейс программы. 
Комментарии: В уроке была идея расширить игру, добавить в нее код помощника для сообщения возможных комбинаций слов и подсказки следующей буквы. По предложенному алгоритму я написал свою реализацию, подсказки выводил в консоль. Алгоритм работал, все устраивало, но хотелось доработать. Поэтому я создал новую программу, отдельно от игры. Достаточно долго продумывал интерфейс бота. Остановился на таком решении: пользователь в верхней части формы с помощью списка combobox выбирает буквы и составляет искомый шаблон слова, там где буквы неизвестны устанавливает "." В средней части формы расположены кнопки, они необходимы для того, чтобы вводить в программу те буквы, которых нет в слове, то есть бот предложил букву, пользователь ее ввел в игру, а ее не оказалось в слове (на втором скриншоте это буквы О и Е). Для безопасности добавил синхронизацию ввода между верхними combobox и нажатыми кнопками, все можно сбросить, перенастроить, сменить длину слова. Внизу формы выводится список слов, рекомендуемая буква и кнопка запуска бота. Словарь использовал тот же самый, из игры. В итоге, доволен программой, бот значительно упрощает поиск слов. 
10 Виселка. Алгоритм помощника 00:43:28 29 чел. ★ 5 Done
  Отчёт отправил: 7276. Ильшат Решено за 15 мин. [Показать отчёт]
Научился: Повторил работу с формой, свойства объектов. 
Сложности: Не было. 
Комментарии: Программу написал в прошлом уроке, в этом без особых изменений. Как было предложено в уроке, добавил вывод дополнительной информации - количество найденных слов по шаблону и количество слов, в которых встречается рекомендуемая буква. 
11 Крестики-Нолики. Игра на двоих 00:40:36 74 чел. ★ 4.9 Done
  Отчёт отправил: 7276. Ильшат Решено за 2 час. 10 мин. [Показать отчёт]
Научился: Повторил настройку формы, создание меню, горячих клавиш. 
Сложности: Подобрать три картинки для фона, крестика и нолика. 
Комментарии: Понравился способ проверки состояния игры, сразу после хода игрока. В этом случае нет необходимости проверять все строки и столбцы, а только те, на которые был совершен ход. Для игры 3 на 3 это не имеет особого значения, но для матриц большого размера разница в производительности уже будет давать о себе знать, спасибо за идею. 
12 Крестики-Нолики. Игра с компьютером 00:49:33 14 чел. ★ 4.8 Done
  Отчёт отправил: 7276. Ильшат Решено за 3 час. 50 мин. [Показать отчёт]
Научился: Повторил работу с STL алгоритмами поиска, подсчета элементов, созданием своего функтора поиска выигрышной линии. 
Сложности: 1) Реализовать асинхронный выбор ячейки для Игрока-Человек. 2) Выиграть у компьютера игрой ноликами (второй скриншот). 
Комментарии: Логика работы игры Крестики-Нолики была написана в прошлом уроке. Мне не хотелось менять, ломать, модифицировать работающий код. По сути, нет разницы кто играет, человек или компьютер, правила игры от этого не меняются. Главное, чтобы игрок мог посмотреть на игровое поле, оценить ситуацию и сообщить координаты хода. Поэтому искал решение, пришел к похожему варианту, предложенному во второй части курса ООП. Выделил интерфейс Игрок, реализовал его в двух классах Игрок-Человек и Игрок-Компьютер. Добавил новую оболочку для Логики, которая принимает ввод от Игрока и перенаправляет его Логике. Здесь были некоторые проблемы со вводом от Игрока-Человека, так как он асинхронный. Алгоритм Компьютера не менял, взял из урока. Результатом доволен, понравилось играть с компьютером :) 
13 Радиоуправляемая машинка 00:41:47 71 чел. ★ 4.9 Done
  Отчёт отправил: 7276. Ильшат Решено за 1 час. 20 мин. [Показать отчёт]
Научился: Повторил работу с загрузкой ресурсов, обработкой событий клавиатуры. 
Сложности: Не было. 
Комментарии: Понравились формулы для заднего хода и расчета углов поворота, кратко и понятно. 
14 ФИНАЛЬНЫЙ УРОК 00:23:23 21 чел. ★ 4.8 Done
  Отчёт отправил: 7276. Ильшат Решено за 30 мин. [Показать отчёт]
Научился: Повторил создание видео обзора. 
Сложности: Не было. 
Комментарии: Курс понравился, спасибо! :) 
Видеообзор: https://youtu.be/5f77asuP-fg
15 VIP урок. Стрелялка 01:33:59 33 чел. ★ 4.8 Done
  Отчёт отправил: 7276. Ильшат Решено за 3 час. 10 мин. [Показать отчёт]
Научился: Воспроизводить звук. 
Сложности: Подготовить ресурсы для игры: картинки и звуки. 
Комментарии: Выполнил два дополнительных задания: создал требуемый базовый класс Zero и добавил звуки на выстрел и попадание. Перенес управление кораблем на клавиатуру: влево - стрелка Влево, вправо - стрелка Вправо, выстрел - Пробел. От себя добавил счетчик количества выстрелов и попаданий. 
  Итого:   15 видеоуроков общей продолжительностью 10 час. 19 мин. 13 чел. ★ 4.9  
  Финалисты:   Nurbek,   lomik,   Оля,   Alcatraz,   Александр Львович,   sergey,   Дмитрий,   Frank,   Артём,   Ильшат,   Permitin Alexey,   Алексей|BrisK|Кривицкий,   Neverwinter 2 .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Запись видео обзоров.
Трудности: Нет
Курс на 100%
Смотреть видеозапись: https://youtu.be/xfldVlIoV1U
Научился: null
Трудности: null
Спасибо , за столь интересный курс!
Смотреть видеозапись: https://www.youtube.com/watch?v=IljT5lbg7rs&feature=youtu.be