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

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

основатель — Волосатов Евгений Витольдович

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

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

После взноса  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 Планирование 00:40:08
1 тест
100 чел. ★ 4.9 Done
  Мы начинаем создание игровой программы Морской Бой.
1. Создать объектную модель.
2. Реализовать классы Корабль и Море.
3. Спроектировать интерфейс игры. DataGridView.
4. Написать Искусственный интеллект.
5. Реализовать игру с компьютером.
6. Реализовать сетевую версию игры на двоих.

Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 40 мин. [Показать отчёт]
Научился: Повторил работу со статическими переменными и массивами. 
Сложности: Проблем не было. 
Комментарии: Все ок. 
2 Море и Корабль 00:57:13
1 тест
92 чел. ★ 5 Done
  На этом уроке мы создадим "ядро" программы, два основных класса - Корабль и Море.
А в конце урока протестируем их работу.
Отчёт отправил: 7276. Ильшат Выполнено за 2 час. 10 мин. [Показать отчёт]
Научился: Повторил работу с матрицами boost::ublas, указателями unique_ptr. 
Сложности: Проблем не было. 
Комментарии: Без использования наследования и полиморфизма трудно назвать полученную систему классов объекто-ориентированной. Страуструп называет такой стиль программирования - абстракцией данных, когда создаются мелкие служебные классы, которые инкапсулируют внутри себя данные и открывают к ним доступ через разрешенный интерфейс. Это подготовительный этап к ООП, переходный от процедурного стиля. Не очень нравится реализация классов Моря и Корабля, например их конструкторы не работают как надо. Но это все сложности, они дадут о себе знать, когда программа будет эволюционировать. На данный момент это не важно, реализация системы получилась простой и ясной, понравилась идея двух массивов, здесь она тоже кстати. Евгений Витольдович хорошо продумал, чтобы код получился как можно проще и понятнее, спасибо:) 
3 Редактор и Сетка 00:59:58
84 чел. ★ 5 Done
  На этом уроке мы разместим и настроим DataGridView.
Потом расширим класс Море до Редактора, добавив методы
для автоматического размещения всех кораблей.
Отчёт отправил: 7276. Ильшат Выполнено за 2 час. 40 мин. [Показать отчёт]
Научился: Повторил работу с компонентом QTableWidget - аналог DataGridView. 
Сложности: Проблем не было. 
Комментарии: Интересный способ случайного размещения кораблей. Каждый раз, когда проверял отчеты формулистов по морскому бою я задавался вопросом - почему на верхнем заголовке таблиц написано РЕСПУБЛИКА? Теперь стало понятно, это оказалось предложением одного из формулистов :) 
4 Делегаты отображения 00:32:57
1 тест
79 чел. ★ 5 Done
  На этом уроке мы перенесём функции из Моря в редактор и
создадим Делегаты для отображения Кораблей и Выстрелов.
Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: Повторил работу с делегатами. 
Сложности: Сложностей не было. 
Комментарии: На верхнем скриншоте раскраска клетки поля при промахе. На нижнем - рассмотрены случаи попадания и потопления корабля. 
5 Установка кораблей 00:38:34
1 тест
73 чел. ★ 4.9 Done
  На этом уроке мы дадим возможность пользователю
устанавливать корабли мышкой и с клавиатуры.
Отчёт отправил: 7276. Ильшат Выполнено за 2 час. 10 мин. [Показать отчёт]
Научился: Повторил обработку событий мышки и клавиатуры. 
Сложности: Реализовать выделение ячеек. 
Комментарии: Хороший урок, попрактиковался с компонентом QTableWidget для вывода таблицы, были некоторые проблемы с обработкой выделения мышкой ячеек и выводом результата добавления. 
6 Олимпиада - Самый лучший алгоритм 00:49:59
67 чел. ★ 4.9 Done
  На участие в олимпиаде было прислано 10 работ.
В этом видео мы проводим тестирование всех программ.
Домашнее задание - составить словесный алгоритм ИИ.

Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 10 мин. [Показать отчёт]
Научился: Познакомился с разными вариантами алгоритмов ИИ для игры в Морской бой. 
Сложности: Сложностей не было. 
Комментарии: Понравились алгоритмы 4004 и public. В моем случае я бы так же сначала искал 4-палубник, попутно сразу добивая найденные корабли, и после потопления 4-палубника, искал бы 2-палубники. 
7 Олимпиада - Угадай число 00:23:26
73 чел. ★ 4.9 Done
  Класс Secret загадал число.
Вам нужно написать класс Strategy,
который сможет его отгадать.
Инструкции в видео-уроке.
Отчёт отправил: 7276. Ильшат Выполнено за 50 мин. [Показать отчёт]
Научился: Повторил работу с генератором случайных чисел. 
Сложности: Проблем не было. 
Комментарии: Хорошая разминка, понравилось разделение классов. 
8 Олимпиада - Создание ИИ - Стратегия 00:12:46
58 чел. ★ 5 Done
  Олимпиадная задача - создать алгоритм ИИ для игры в Морской бой.
Подробности на видео.
Отчёт отправил: 7276. Ильшат Выполнено за 4 час. 20 мин. [Показать отчёт]
Научился: Познакомился в библиотекой консольного вывода ncurses. 
Сложности: Реализовать алгоритм. 
Комментарии: На первом скриншоте результат работы алгоритма для прямого расположения кораблей и ниже для случайного. На втором скриншоте при запуске с командой строки задаю количество тестов случайных расположений, нахожу минимальное, среднее и максимальное количество шагов. Спасибо за отличный урок, хорошо попрактиковался:) 
9 Олимпиада - Создание ИИ - Шаблон ударов 00:35:30
54 чел. ★ 5 Done
  Алгоритм искусственного интеллекта для игры в Морской бой состоит из двух этапов:
1. нанесение ударов по шаблону для поиска 4-палубного и 2-палубных.
2. добивание раненного корабля и пометка клеток вокруг потопленного корабля.
На этом уроке разберём и реализуем первый этап.
Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: Повторил создание и обработку двумерных массивов. 
Сложности: Небольшая ошибка, опечатка в границах цикла при инициализации двумерного массива. 
Комментарии: Интересный алгоритм, случайный выбор из матрицы put ячейки с наибольшим значением веса. 
10 Олимпиада - Создание ИИ - Добивание корабля 00:49:11
1 тест
51 чел. ★ 4.9 Done
  Алгоритм искусственного интеллекта для игры в Морской бой состоит из двух этапов:
1. нанесение ударов по шаблону для поиска 4-палубного и 2-палубных.
2. добивание раненного корабля и пометка клеток вокруг потопленного корабля.
На этом уроке разберём и реализуем второй этап.
Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 50 мин. [Показать отчёт]
Научился: Повторение материала из прошлых уроков, работа с рекурсией. 
Сложности: Проблем не было. 
Комментарии: Все ок, хорошо придумано использовать вывод матрицы put на экран, наглядно. 
11 Рефакторинг кода 00:27:28
45 чел. ★ 5 Done
  На этом уроке мы займёмся рефакторингом нашего проекта.
Создадим класс SeaGrid, в который перенесём некоторые
функции из класса формы.
Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 20 мин. [Показать отчёт]
Научился: Повторение рефакторинга. 
Сложности: Проблем не было. 
Комментарии: Все ок, рефакторинг на пользу, меньше деталей в классе формы) 
12 Интерфейс игры 00:21:58
1 тест
44 чел. ★ 5 Done
  На этом уроке мы создадим интерфейс пользователя -
разместим несколько кнопочек и запрограммируем их.
Также создадим перечисление всех режимов игры.
Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 10 мин. [Показать отчёт]
Научился: Повторил работу с интерфейсом программы, обработку событий мышки. 
Сложности: Сложностей не было. 
Комментарии: Реализовал секретную функцию, предложенную в уроке: два клика правой кнопкой мышки показывают корабли компьютера, клик левой кнопкой - скрывает. 
13 Последний Бой! 00:26:59
40 чел. ★ 5 Done
  На этом уроке мы закончим создание Морского боя.
Сделаем отображение выстрелов пользователя.
Подключим класс Mission и сделаем ход компьютера.
Ходы будут выполняться в порядке очереди.
Нам потребуется таймер для постепенного
отображения серии ходов компьютера.
Отчёт отправил: 7276. Ильшат Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: Повторил работу с таймером, настройкой интерфейса программы. 
Сложности: Проблем не было. 
Комментарии: Компьютер играет очень даже здорово:) 
14 ФИНАЛЬНЫЙ УРОК 00:23:23
1 тест
17 чел. ★ 5 Done
  Записать видео обзор Морского боя. созданного на этом курсе.

Отчёт отправил: 7276. Ильшат Выполнено за 30 мин. [Показать отчёт]
Научился: Повторил создание видео обзоров. 
Сложности: Проблем не было. 
Комментарии: Спасибо за отличный курс :) 
Видеообзор: https://youtu.be/m_CHnhpE9u4
15 VIP. Анимированный кружок 00:32:54
125 чел. ★ 4.9 Done
  На этом уроке мы создадим двигающийся кружок,
из которого потом сделаем анимированый кубик.

Задание:
Создать два класса с наследованием.
Сделать плавное перемещение кружка.
Отчёт отправил: 7276. Ильшат Выполнено за 40 мин. [Показать отчёт]
Научился: Повторил работу с графикой: классы Graphics, Pen, Bitmap. 
Сложности: Сложностей не было. 
Комментарии: Интересная задумка, идем дальше) 
16 VIP. Анимированный кубик 00:44:27
114 чел. ★ 5 Done
  На этом уроке мы создадим массив из кружков,
они будут сначала двигаться случайно, похоже на бильярд.
Дальше мы создадим правила для их передвижения
и в конечном итоге реализуем анимированный игральный кубик.

Задание:
Нарисовать верхнюю сторону игрального кубика
с шестью анимированными точками для смены чисел.
Отчёт отправил: 7276. Ильшат Выполнено за 2 час. 50 мин. [Показать отчёт]
Научился: Повторил работу с двумерными массивами в C#. 
Сложности: Организовать работу программы с использованием классов. 
Комментарии: Интересная тема, анимация завораживает. Понравилась идея представления значения числа на игральном кубике в виде двумерного массива. По началу, меня это не устраивало, реализовал в виде одномерного массива, но получилось так, что решение Евгения Витольдовича лучше отражает идею, по коду легче понять замысел. Однако синтаксис этих вложенных конструкций меня не устраивал. Поэтому добавил дополнительные переменные для выделения значений из массивов. Добавил классы NumberArena (абстракция числа на кубике), Drawer(рисовальщик) и GameLogic(внешний класс, который всем управляет и вызывается из формы). По ходу разработки было много сомнений. Конечно, синтаксически добавить класс не составляет никаких проблем, даже есть такой способ в рефакторинге "выделение класса" и прочие мелкие махинации с кодом. Проблемы были в моменте связи классов. И тут-то мне не нравилось, что классы знают много друг о друге и выполняют чужую работу. Не буду подробно описывать все эти моменты, в итоге удалил класс Drawer и передал его обязанности GameLogic. Своим полученным решением не доволен, но доволен тем, что появились идеи для дальнейших решений, которыми займусь в ближайшем будущем. Спасибо, Евгений Витольдович) 
  Итого:   16 видеоуроков 9 час. 36 мин.
7 тестов
14 чел. ★ 4.97  
  Финалисты:   Алексей В.,   Ильшат,   Станислав,   Tekashnik,   Новопашин Владимир,   LINKI,   Dimon,   Yefim,   chokayes,   Николай Денисов,   Максим Лапшинов,   Александр,   vip,   MaxB .

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





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

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

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

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


Научился: Запиливать видос.
Трудности: Что творится с моим организмом - все слова разом пропадают и несу какой-то бред.
Следующий курс - куда укажет улиточная судьба.


Научился: Записывать видеоотчет
Трудности: Собраться, привести мысли в порядок.
Все отлично, только устал почему. Как после экзамена.