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 FREE Сокобан - Вступление 00:11:09
4 теста
158 чел. ★ 4.8 Done
  Я приглашаю вас на видеокурс по созданию полноценной игровой программы СОКОБАН. Я проведу вас за руку по всем этапам создания законченной интеллектуальной игры:
1. Создание редактора уровней.
2. Придумывание этих самых уровней.
3. Создание собственно игры.
4. Решение олимпиадной задачки для добавления ИИ.
5. Переделка игры в режим "на двоих".
6. Написание класса Phone для связи двух программ по сети.
7. Создание сетевой версии игры Sokoban.
Будет интересно!

В конце видео - первое задание: Научиться играть! :)
Ссылка на игру Сокобан
Отчёт отправил: 791. Валерий Жданов Выполнено за 5 час. 20 мин. [Показать отчёт]
Научился: Ознакомился с игрой "Сокобан", ее правилами, хитростями, ньюансами. 
Сложности: Пройти уровни, которые я прошел. Я открыл скорее всего классический сокобан, пришлось поломать голову 
Комментарии: К видео замечаний нет, с прохождением уровней игры пришлось посидеть, поломать голову. Игра не так проста, как кажется на первый взгляд. Но это и возможности открывает серьезные 
2 FREE Сокобан - Подготовка - Картинки и лабиринт 00:04:56
1 тест
116 чел. ★ 4.9 Free
  На этом уроке мы подготовим 6 пиктограмм и две картинки для игры,
а также придумаем свой собственный уровень, который запишем в текстовый файл.
3 Сокобан - Редактор - Загрузка 00:33:25
110 чел. ★ 5 Done
  Мы начинаем создавать редактор уровней
для известной логической игры Sokoban.

Редактор будет создан за четыре урока.
На первом уроке мы создадим класс для загрузки
уровня с текстового файла и протестируем его работу.

Отчёт отправил: 791. Валерий Жданов Выполнено за 2 час. 10 мин. [Показать отчёт]
Научился: Работать со структурой emum и отладка. Я хотел отладку внести в "сложности", но всё с отладкой получилось.  
Сложности: Наверное, создать уровни в текстовом файле. Здесь не просто описания, хотелось создать такие лабиринты, где можно было бы задействовать все используемые элементы, но при этом они были бы небольшие. Еще определенную сложность вызвала работа с багами при написании функции с out, но я разобрался 
Комментарии: Хороший урок на создание того, что "под капотом" любого редактора уровней для любой игры. Теперь визуалку будет сделать легче. А уже в визуальной среде сложности с уровнями будут решаться при "разработке" лабиринта 
4 Сокобан - Редактор - Интерфейс 00:40:37
95 чел. ★ 5 Done
  На этом уроке мы создадим интерфейс программы
и сделаем отображение загруженного уровня на экране.
Отчёт отправил: 791. Валерий Жданов Выполнено за 2 час. 10 мин. [Показать отчёт]
Научился: Работа с Resize - новая и интересная для меня функция, срабатывающая при изменении формы. 
Сложности: Сложностей не было - и слава Богу! 
Комментарии: Ну по данному уроку новизны как таковой лично для меня не было. Динамическую прорисовку игрового поля мы делали во многих программах на уроках Евгения, это мне нравится. Очень интересная идея хранения карты уровня в текстовом файле (хотя отмечу  - для сокобана, где элементов немного, отлично, но для редакторов карт других игр, где элементов больше, одинарных символов может и не хватить). В целом очень понравился урок. И понравилось, что всё получилось. В скрине прислал и levels и запущенную программу на одном рисунке. Запускал второй уровень. 
5 Сокобан - Редактор - Редактирование 00:38:33
88 чел. ★ 5 Done
  На третьем уроке мы сделаем наконец-таки редактирование поля.
Также реализуем возможность изменения размера лабиринта.
В конце напишем функцию для проверки корректности составленного уровня.
Отчёт отправил: 791. Валерий Жданов Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: 1. Добавлению строк и столбцов в редакторе (функция не несет в себе явной новизны, но как это реализовать, я до этого урока не очень понимал) 2. Работа с компонентом DropDownButton для меня достаточно новая. 3. Вставка картинки по левой и правой кнопки мыши. Я думал, будут достаточно большой разветвленный алгоритм, но по имеющимся функциям обошлись по одной строке на каждую кнопку мыши - это классно 
Сложности: Всё-таки добавление строк и столбцов. 
Комментарии: Тоже интересная в практическом отношении новелла нашего сериала "Сокобан".  Много подчерпнул интересных инноваций для себя. Кое-что привнес по-своему. Не придумал, какую картинку поместить на список меню добавления/удаления строк и столбцов, и в конце концов сделал у компонента DisplayStyle=Text и словами вписал "Строки и столбцы". А по функции проверки IsGoodLevel мне не очень понравилось, что она будет возвращать по одной ошибке за цикл проверки, и я добавил в нее строковую переменную checkLevel, и все return, кроме конечного заменил на checkLevel+=" ошибка ... нужно указать..." и текст ошибки. а в конце return checkLevel, чтобы программа возвращала всё, что она имеет против нашего уровня на данный момент   
6 Сокобан - Редактор - Сохранение 00:44:47
84 чел. ★ 4.9 Done
  На четвёртом уроке мы закончим создание редактора уровней.
Напишем самую главную функцию для сохранения сделанных изменений в файл.
Затем добавим кнопки перехода к следующему и предыдущему уровню.
Останется только немного облагородить интерфейс программы.
Отчёт отправил: 791. Валерий Жданов Выполнено за 10 час. 24 мин. [Показать отчёт]
Научился: Вот этот урок по количеству новоприобретенных навыков компенсировал для меня все предыдущие. Новым было практически всё - и сама идея вставлять строки в серединку текстового файла, и сдвиги строк - интересно сделаны, можно будет использовать подобные алгоритмы в прикладных проектах, и создание пустого уровня (правда он у меня почему-то при создании  последний везде копирует, и я понял почему,  но это мне даже больше понравилось, - человечек и нужное кол-во ящиков и мест есть, остается только перераспределить и перерисовать стены - не буду исправлять). 
Сложности: Пожалуй... справиться с такой проблемкой ... с resize... добавлю одну строку - нормально, добавляю один столбец - нормально, добавляю несколько столбцов - все нормально... но как только добавлю 2 или более строк и жму сохранение - вываливает ошибку, что такого элемента массива не существует. и правильно - z=1, delta=2 естественно, элемент[-1] не существует... но откуда он берется, я до сих пор не понял (однако, не теряю надежду, ищу), а проблему одолел прописыванием функции SaveLevel() в функцию добавления строки. 
Комментарии: Урок очень хороший, очень классное объяснение всей идеи и этапов реализации, новые функции очень нравятся, буду использовать в своих наработках. Но положу небольшую ложку дегтя: сам принцип записи всех уровней в один файл,  и наработка множества сопутствующих технологий и алгоритмов кажется мне немного сложноватой. Решение сейчас прорабатываю: пробую сделать программку сохранения уровней в таблицу встраиваемой базы данных. Если получится, поделюсь решением. 
7 Сокобан - Редактор - Улучшение 00:29:00
81 чел. ★ 5 Done
  Допиливаем и дорабатываем редактор до товарного вида.
Реализуем ещё несколько фишек.
Отчёт отправил: 791. Валерий Жданов Выполнено за 4 час. 10 мин. [Показать отчёт]
Научился: Закрепил знания по свойствам элементов, динамически размещаемых на панели  
Сложности: Да в принципе ничего сложного, легкий урок, я больше внимания уделил удобству программы. Вот удобство для пользователя и при этом функционал без глюков - это для меня "бритва Окаммы", трудноватая вещь 
Комментарии: Ну что могу добавить к перечисленному выше... люблю такие уроки, где всё в общем-то знакомо, всё в проекте уже сделано, и где, незначительно улучшая уже готовый функционал, мы делаем программу удобнее и заодно повторяем и закрепляем полученные знания и навыки.  
8 Сокобан - Редактор - Классика уровней 00:03:16
1 тест
31 чел. ★ 5 $
  На этом уроке вам нужно выбрать любых два классических уровня
и создать их в нашей программе-редакторе.

Ссылка на классические уровни:
https://logic-games.spb.ru/sokoban/

Редактор можно скачать здесь:
https://www.videosharp.info/data/soft/SokobanEditor.zip
9 Сокобан - Создаём свои уровни 00:08:05
1 тест
79 чел. ★ 4.9 Done
  Твоя задача - подготовить базу уровней для игры Сокобан.
Отчёт отправил: 791. Валерий Жданов Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Рассчитывать сложность и совпадающее количество ящиков и мест под них 
Сложности: сделать уровень сложным,но проходимым 
Комментарии: Все уровни на скрине - мои))) старался сделать их проходимыми, сложными и красивыми. не всегда получалось. но в процессе работы непосредственно над игрой, я надеюсь, что еще пару уровней дорисую))) 
10 Сокобан - Игра - Интерфейс 00:43:45
1 тест
80 чел. ★ 5 Done
  Мы начинаем создание интеллектуальной игры СОКОБАН.
У нас уже есть все необходимые классы и уровни для создания полноценной игры.
На этом уроке мы создадим форму и настроим интерфейс окна лабиринта.
Отчёт отправил: 791. Валерий Жданов Выполнено за 2 час. 30 мин. [Показать отчёт]
Научился: Сделать интерфейс игры 
Сложности: Работа с делегатами 
Комментарии: К сожалению, в курсе по сокобану меня после того, как я сделал вступительное задание и отчитался по нему, перебросило не к первому уроку, а сюда, к 7-му. Поэтому в качестве скринов к отчету я прикладываю свои старые наработки по сокобану, а когда дойду до данного урока "своим ходом", - всё переделаю. Но урок прекрасный! 
11 Сокобан - Игра - Управление 01:06:38
3 теста
69 чел. ★ 5 $
  Теперь мы создадим класс логики игры Game,
используя который, мы реализуем управление человечком
курсорными клавишами клавиатуры.
А также сделаем переход на следующий уровень.
12 Сокобан - Решалка - Тестер 00:59:55
1 тест
63 чел. ★ 5 $
  На этом уроке мы напишем программу, которая будет
проверять правильность алгоритма поиска решения лабиринта.
http://www.videosharp.info/console/task/level=1178
13 Сокобан - Решалка - Мышка 00:53:02
1 тест
62 чел. ★ 5 $
  Мы начинаем решать задачу по решению игры Сокобан с одним ящиком.
Эта задача олимпиадного уровня на применение алгоритма поиска вширь.
Главный герой - мышка Альфа, которая желает затолкать яблочко к себе в норку.
Программу мы напишем за два урока.
На первом уроке мы создадим вспомогательную функцию MoveAlfa(),
которая подскажет мышке как попасть из одной клетки лабиринта в другую кратчайшим путём.
14 Сокобан - Решалка - Яблоко 00:44:23
2 теста
60 чел. ★ 5 $
  На втором уроке мы переделываем написанный алгоритм поиска маршрута мышки.
Теперь мы разрешаем мышке толкать яблоко, и записываем все изменения их расположений.
15 Сокобан - Решалка - Оптимизация 00:11:37
1 тест
60 чел. ★ 5 $
  На этом коротком уроке мы рассмотрим два способа оптимизации нашей программы, в результате которых работать она станет просто молниеносно!!!
16 Сокобан - Игра - Автоходы 00:42:22
1 тест
57 чел. ★ 5 $
  Поздравляю, программа уже создана: можно играть, можно ею хвастаться.
На этом уроке мы добавим в игру автоходы, чтобы можно было
управлять нашим человечком с помощью мышки - указать, куда идти,
и даже указать, какой ящик куда нужно поставить.
Для этого нам потребуются два класса по решению лабиринта.
17 Сокобан - Редактор - На двоих 00:31:57
1 тест
54 чел. ★ 5 $
  Переделываем редактор уровней, чтобы можно было создавать лабиринты для двоих игроков.
Создаём базу из 10 новых уровней игры в Сокобан для двоих.
18 Сокобан - Игра - На двоих 00:15:40
54 чел. ★ 5 $
  Переделать игру, чтобы в неё можно было играть вдвоём на одной клавиатуре.
19 Сокобан - Телефон - TCP/IP протокол 00:47:44
1 тест
65 чел. ★ 5 $
  На этом видеоуроке мы создадим три класса, которые удобно
использовать для передачи данных между двумя компьютерами.
20 Сокобан - Игра - На двоих по сети 00:56:59
1 тест
52 чел. ★ 5 $
  На этом уроке мы наконец-таки сделаем сетевую версию программы Sokoban для двоих.
Мы будем использовать телефонный класс Phone с прошлого урока.
21 Сокобан - Завершение 00:37:44
49 чел. ★ 5 $
  Игра уже написана, но всегда можно сделать чуть-чуть лучше.
На этом уроке мы объединим оба варианта игры в одну программу
и загрузим файл с уровнями в ресурсы программы.
Теперь в одном ехешнике будет сразу всё!
Это финиш!!!
22 ФИНАЛЬНЫЙ урок. Видео-обзор проекта Сокобан 00:23:23
35 чел. ★ 5 $
  Задание:
Записать видеообзор игры СОКОБАН.
23 VIP. Бот для игры БАЛДА 01:22:57
16 чел. ★ 5 $
  Используя текстовый файл из 27400 слов
создаём рекурсивный алгоритм подбора
слов для популярной игры Балда.
  Итого:   23 видеоурока 13 час. 51 мин.
20 тестов
12 чел. ★ 4.98  
  Финалисты:   LINKI,   Новопашин Владимир,   Tekashnik,   Алексей В.,   zhikharevav,   Evgenii Kudriavtcev,   chokayes,   Дмитрий,   Максим Лапшинов,   no name,   Max,   MaxB .

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





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

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

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

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


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



Научился: Запись видео обзора на разработанный продукт.
Трудности: Побороть свою лень)))
ОООООООЧЕНЬ крутой, интересный курс!!!! Рекомендую всем!
Смотреть видеозапись: https://www.youtube.com/watch?v=JJWEkydnemY