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

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Микроигры

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

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

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

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



Клуб формулистов - Ежемесячная подписка

Вступление в Клуб Формулистов на выгодных условиях для НОВЫХ участников.

После взноса  999  499 руб. вы получите подписку
в Клуб Формулистов на 30 дней и 256 байт для быстрого старта.
Байты используются для открытия более одного урока в день, по 50 байт за урок.

Стоимость 1 дня за первый месяц: всего 16 рублей.

Первый взнос - 499 руб./30 дней.

Через 30 дней будет списано 3,000 2,400 руб.
за продление подписки в Клуб на 30 дней + подарок 512 байт.

Так будет продолжаться каждые 30 дней, пока вы не отмените подписку.
Средства будет автоматически считываться с вашей карты.
Вы в любой момент сможете отказаться от продления Клуба.

Только ДО КОНЦА НЕДЕЛИ -
-50% скидка на первый взнос, всего 499 (вместо 999) рублей!
-20% скидка на ЕЖЕМЕСЯЧНЫЙ платёж!
Всего 2400 руб/месяц (вместо 3000 руб/месяц), или 80 руб./день - цена чашки кофе.


Стоимость 1 дня: 80 руб.

Хочу вступить!

Также есть другие варианты оплаты участия в КФ:

Билет в клуб формулистов на ...
30+ дней | 60 дней | 150 дней | 380 дней | 1000 дней

Внимание!
Стоимость участия в Клубе формулистов увеличивается 1 числа каждого месяца на 100 рублей.
При оформления подписки стоимость остаётся постоянной, пока подписка не будет отменена.







Первый взнос - 499 руб./30 дней + 500 байт.
Последующие взносы - 3,000 2400 руб./месяц + 512 байт.



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

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE Игра 15 - Кнопки 00:13:41
2 теста
184 чел. ★ 5 Done
  Создание известной игры «Пятнашки» — отличное упражнение для начинающих программистов.
На первом уроке мы создадим интерфейс игры и разместим все кнопки.
На втором уроке мы напишем класс логики игры и допишем программу.
На третьем уроке мы вместо кнопок будем использовать картинки —
динамически их создавать и размещать на них вырезанные кусочки основной картинки.
Отчёт отправил: 7276. Ильшат Выполнено за 50 мин. [Показать отчёт]
Научился: 1) Размещать объекты на форме с использованием QGridLayout (аналог TableLayoutViewer в Windows Forms). 2) QSignalMapper - отображение сигналов нажатия различных кнопок в один слот-функцию обработчик нажатия ( аналог "одной функции на нажатие любой кнопки" в Windows Forms) 
Сложности: Создать табличное размещение кнопок на форме и реализовать обработку нажатия в единственной функции-обработчике. 
Комментарии: Короткий и ясный урок, идем дальше. 
2 Игра 15 - Алгоритм 00:42:15
1 тест
148 чел. ★ 5 Done
  Завершаем создание игры Пятнашки.
На втором уроке мы напишем класс логики игры, в котором опишем матрицу для хранения чисел на кнопках и реализуем основные методы: start, shift, check_numbers и другие.

Отчёт отправил: 7276. Ильшат Выполнено за 2 час. 40 мин. [Показать отчёт]
Научился: Интересному способу случайного перемешивания кнопок в игре 15. 
Сложности: Пройти игру :) 
Комментарии: Понравился способ перемешивания кнопок в функции shift_random(), здорово придумано :) Так же было интересно посмотреть на реализацию функции перемещения кнопок при клике мышкой - решение простое и понятное, без анимаций - сброс значения свойства visible для требуемой кнопки. В этом уроке вновь встретил двумерные массивы, поэтому решил добавить более удобный интерфейс для доступа к данным и поэкспериментировать. Создал класс Matrix в котором в качестве представления данных использовал одномерный динамический массив STL vector, перегрузил оператор () для доступа по индексам строк и столбцов, превратил класс Matrix в шаблон. Мои эксперименты не входили в урок, но были полезными; в итоге, повторил работу с generic кодом. 
3 Игра 15 - Картинка 00:36:03
2 теста
106 чел. ★ 5 Done
  Переделываем игру Пятнашки в Пазл картинки.
Убираем кнопки, вместо них динамически размещаем матрицу PictureBox'ов,
в которые загружаем кусочки картинки, предварительно разрезав их
и сохранив все части картинки в матрицу Image.
Размер поля можно будет выбирать, от 3 на 3 до 6 на 6.
Отчёт отправил: 7276. Ильшат Выполнено за 3 час. 10 мин. [Показать отчёт]
Научился: Разрезать картинку на фрагменты. 
Сложности: Абстракции... Вовремя остановиться :D Заметил, что код в играх пятнашки и пазл практически идентичен. Хороший посыл для наследования. Кроме того, в следующих уроках будет игра 2048, где по сути выполняются те же действия с объектами и можно будет обобщить. Но я решил не торопиться и сначала получить конкретные классы всех трех игр и потом уже смотреть есть ли смысл выделять общий интерфейс. 
Комментарии: В уроке убрали одно условие и все - новая игра - пазл! Это здорово. Для игры пятнашки думаю не стоит использовать картинки, отвлекают от сути, а в пазле самое то. Поэтому на скриншотах игра пазл 5 на 5. Вне задания поработал над кодом, потребовалось расширить свой шаблон Matrix для классов без конструктора по умолчанию и для классов с запрещенными операциями копирования, например std::unique_ptr. 
4 Аполлон. Главные герои 00:00:00
2 теста
57 чел. ★ 4.8 $
  На этом уроке мы озвучим правила игры Аполлон.
Выясним, какие у нас будут главные герои.
Твоё самостоятельное задание -
нарисовать на бумаге внешний вид игры
со всеми главными героями.
Как ты это себе представляешь.
5 Аполлон. Законы физики 00:00:00
56 чел. ★ 5 $
  Корабль Аполлон прилуняется на Луну.
На этом уроке мы рассмотрим упрощённую
физическую модель этого процесса и
выпишем все параметры и все формулы,
которые будут управлять этим процессом.
6 Аполлон. Плавное прилунение 00:00:00
1 тест
53 чел. ★ 5 $
  На этом уроке мы допишем игру Аполлон.
Свяжем класс логики с интерфейсом.
Сделаем управление двигателем с помощью мышки.
Добавим таймер, функцию отображения корабля.
А также сообщение о конце игры и перезапуск игры.
7 ПОЛУФИНАЛЬНЫЙ УРОК 00:23:23
73 чел. ★ 4.9 Done
  Задание.
Записать видеообзор любой программы из первой части этого курса.

Отчёт отправил: 7276. Ильшат Выполнено за 30 мин. [Показать отчёт]
Научился: Повторил создание видео обзоров. 
Сложности: Не было. 
Комментарии: Хорошие игры получились, спасибо :) 
Видеообзор: https://youtu.be/upZ2p3bJI3M
8 2048 - Учимся играть 00:08:33
102 чел. ★ 4.8 Done
  Начинаем создание модной игры 2048.
Но сначала нужно научиться в неё играть.
Это можно сделать здесь: http://2048game.com/ru/
Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 40 мин. [Показать отчёт]
Научился: Играть в игру 2048. 
Сложности: Набрать 1024 или 2048. 
Комментарии: Интересная игра, захватывает. Ранее не играл в нее. Руководствовался советами Евгения Витольдовича из видеоурока, это сильно помогло. 
9 2048 - Интерфейс 00:39:12
92 чел. ★ 5 Done
  На этом уроке мы создадим интерфейс программы.
Динамически создадим Label для цифр и разместим их в матрицу.
Раскрасим кнопочки и создадим обработчик курсорных клавиш.
Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 50 мин. [Показать отчёт]
Научился: Обработка события нажатия клавиши, повторил работу с табличной компоновкой виджетов. 
Сложности: Подобрать цвета меток. 
Комментарии: Интересный способ подбора цветов в цикле, правда не совсем точный и непросто подобрать желаемые цвета. 
10 2048 - Смещение 00:24:30
2 теста
86 чел. ★ 4.9 Done
  На этом уроке мы реализуем класс с логикой игры.
Далее, напишем заглушки для функций смещения клеток
и функцию проверки окончания игры game_over().
Отчёт отправил: 7276. Ильшат Выполнено за 3 час. 50 мин. [Показать отчёт]
Научился: Повторил работу с рекурсией. 
Сложности: Понять работу рекурсивных функций shift и combine, организовать прорисовку меток через самописный делегат и исправить небольшие недочеты с табличной компоновкой. 
Комментарии: Во время написания кода прокачался в некоторых технических аспектах, поработал с "делегатами". В моем случае табличная компоновка не сказывалась на скорости отрисовки матрицы меток, поэтому оставил. Понравились рекурсивные функции - красиво. В итоге, хорошая игра в копилочку, есть куда расширять и улучшать. 
11 2048 - Объединение 00:43:33
36 чел. ★ 5 $
  На этом уроке мы напишем функции смещения и объединения клеток.
Далее, пошагово выполним эти алгоритмы, чтобы понять принцип их работы.
12 FREE Крестики-Нолики. Игра на двоих 00:40:36
124 чел. ★ 4.9 Done
  Играл в крестики-нолики, мелом на асфальте?
Я играл, и очень много, был непревзойдённым профессионалом
в своём дворе, изучил все ходы-выходы в этой программе,
и замахнулся на создание искусственного интеллекта! :)
Игрушка не сложная, она отлично подходит для
упражнения в программировании для программиста.
Отчёт отправил: 7276. Ильшат Выполнено за 2 час. 10 мин. [Показать отчёт]
Научился: Повторил настройку формы, создание меню, горячих клавиш. 
Сложности: Подобрать три картинки для фона, крестика и нолика. 
Комментарии: Понравился способ проверки состояния игры, сразу после хода игрока. В этом случае нет необходимости проверять все строки и столбцы, а только те, на которые был совершен ход. Для игры 3 на 3 это не имеет особого значения, но для матриц большого размера разница в производительности уже будет давать о себе знать, спасибо за идею. 
13 Крестики-Нолики. Игра с компьютером 00:49:33
55 чел. ★ 4.9 Done
  На этом уроке мы добавим в игру Крестики-Нолики искуственный интеллект.
Мы напишем алгоритм, который будет искать наилучший ход для позиции.
Отчёт отправил: 7276. Ильшат Выполнено за 3 час. 50 мин. [Показать отчёт]
Научился: Повторил работу с STL алгоритмами поиска, подсчета элементов, созданием своего функтора поиска выигрышной линии. 
Сложности: 1) Реализовать асинхронный выбор ячейки для Игрока-Человек. 2) Выиграть у компьютера игрой ноликами (второй скриншот). 
Комментарии: Логика работы игры Крестики-Нолики была написана в прошлом уроке. Мне не хотелось менять, ломать, модифицировать работающий код.  По сути, нет разницы кто играет, человек или компьютер, правила игры от этого не меняются. Главное, чтобы игрок мог посмотреть на игровое поле, оценить ситуацию и сообщить координаты хода. Поэтому искал решение, пришел к похожему варианту, предложенному во второй части курса ООП. Выделил интерфейс Игрок, реализовал его в двух классах Игрок-Человек и Игрок-Компьютер. Добавил новую оболочку для Логики, которая принимает ввод от Игрока и перенаправляет его Логике. Здесь были некоторые проблемы со вводом от Игрока-Человека, так как он асинхронный. Алгоритм Компьютера не менял, взял из урока. Результатом доволен, понравилось играть с компьютером :) 
14 ФИНАЛЬНЫЙ УРОК 00:23:23
57 чел. ★ 4.9 Done
  Задание:
Записать видео обзор любой игры, созданной на этом курсе.

Отчёт отправил: 7276. Ильшат Выполнено за 30 мин. [Показать отчёт]
Научился: Повторил создание видео обзора. 
Сложности: Не было. 
Комментарии: Курс понравился, спасибо! :) 
Видеообзор: https://youtu.be/5f77asuP-fg
15 VIP урок. Формула 1 00:41:47
104 чел. ★ 4.9 Done
  Создаём динамический графический объект - машинку.
Ездит по экрану. Поворачивает. Восемь направлений.
Разгоняется и тормозит. Задний ход.

Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 20 мин. [Показать отчёт]
Научился: Повторил работу с загрузкой ресурсов, обработкой событий клавиатуры. 
Сложности: Не было. 
Комментарии: Понравились формулы для заднего хода и расчета углов поворота, кратко и понятно. 
16 VIP урок. Стрелялка 01:33:59
66 чел. ★ 4.9 Done
  Сегодня мы напишем классический одноэкранный шутер.
Будет лететь самолётик и сбивать шарики.
На примере простых объектов демонстрация основ ООП.
Отчёт отправил: 7276. Ильшат Выполнено за 3 час. 10 мин. [Показать отчёт]
Научился: Воспроизводить звук. 
Сложности: Подготовить ресурсы для игры: картинки и звуки. 
Комментарии: Выполнил два дополнительных задания: создал требуемый базовый класс Zero и добавил звуки на выстрел и попадание. Перенес управление кораблем на клавиатуру: влево - стрелка Влево, вправо - стрелка Вправо, выстрел - Пробел. От себя добавил счетчик количества выстрелов и попаданий. 
17 VIP урок. Змейка 01:08:56
14 чел. ★ 4.9 Done
  Создаём популярную игру «Змейка».
На примере простых объектов демонстрация основ ООП.
Отчёт отправил: 7276. Ильшат Выполнено за 3 час. 50 мин. [Показать отчёт]
Научился: Повторил обработку нажатия клавиш keyPressEvent, работу с таймером QTimer, матрицами boost::ublas, очередью std::queue. 
Сложности: Остановиться в абстракции кода. 
Комментарии: В качестве структуры данных для хранения тела змеи использовал очередь. 
  Итого:   17 видеоуроков 9 час. 09 мин.
10 тестов
12 чел. ★ 4.93  
  Финалисты:   Tekashnik,   Максим Лапшинов,   Иван Воронин,   Permitin Alexey,   Кирилл,   Артём Нагорный,   no name,   Дмитрий,   MaxB,   Tom,   Tim,   Alina .

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





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.


Научился: Записал очередной видеообзор.
Трудности: Трудно записывать когда ты приболел и у тебя плохой микрофон, но волна позитива и радости от завершения курса даёт непомерные силы.
Спасибо за курс Евгений Витольдович! Отличнейшая тренировка навыков и учеба, учеба, учеба для меня! Каждый новый видеоурок даёт всё больше мотивации для работы над собой и это замечательно.


Научился: Видео отснять пока нет возможности. Так что только небольшая нарезка картинок. Курс очень понравился. Особенно игра 2048. Думал всё гораздо сложнее, а оказалось раз два и готово. Следующий курс - куда улитка укажет:)
+++