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.
Будет интересно!

В конце видео - первое задание: Научиться играть! :)
Ссылка на игру Сокобан
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 1 час. 20 мин. [Показать отчёт]
Научился: Играть в Сокобан я умел. Вспомнил навыки. 
Сложности: Самое сложное было сначала найти игру - восновном предлагается только онлайн. Ну и уровни 8, 9 и особенно 10 были самыми сложными 
Комментарии: Я был очень впечатлён перспективой, увиденной на этом уроке... Неужели мы всё это сделаем? 
2 FREE Сокобан - Подготовка - Картинки и лабиринт 00:04:56
1 тест
116 чел. ★ 4.9 Done
  На этом уроке мы подготовим 6 пиктограмм и две картинки для игры,
а также придумаем свой собственный уровень, который запишем в текстовый файл.

Отчёт отправил: 1901. Neverwinter 2 Выполнено за 15 мин. [Показать отчёт]
Научился: Готовить картинки. 
Сложности: Найти картинки. 
Комментарии: Мы это сразу сделали!! 
3 Сокобан - Редактор - Загрузка 00:33:25
110 чел. ★ 5 Done
  Мы начинаем создавать редактор уровней
для известной логической игры Sokoban.

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

Отчёт отправил: 1901. Neverwinter 2 Выполнено за 2 час. 15 мин. [Показать отчёт]
Научился: Научился делить строку на части, вспомнил как преобразовывать цифры из строки в число. 
Сложности: Найти ошибки в своей программе: когда у меня подчеркивает, а в образце - нет... 
Комментарии: Трудно мне... Не работал с ООП ни разу, привык к функциональному подходу, где в main() вся структура, как на ладони. Здесь с трудом видно, что за чем выполняется. Будет трудно управлять такой программой. Но я не могу (надеюсь - пока) предложить метода, который бы облегчил... Разве что нарисовать алгоритм (блок-схему) работы функций до создания программы... 
4 Сокобан - Редактор - Интерфейс 00:40:37
95 чел. ★ 5 Done
  На этом уроке мы создадим интерфейс программы
и сделаем отображение загруженного уровня на экране.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 2 час. 45 мин. [Показать отчёт]
Научился: Пользоваться автоматическим конструктором кода из формы, добавлять ресурсы в код (например значки), динамически отрисовывать размер картинок. 
Сложности: Самым сложным было найти иконку к редактору. Ну, нету у меня иконок, нету!... 
Комментарии: А у меня, кстати, не было той ошибки, которая возникла на моменте 33:30. Не знаю, почему, но не было. 
5 Сокобан - Редактор - Редактирование 00:38:33
88 чел. ★ 5 Done
  На третьем уроке мы сделаем наконец-таки редактирование поля.
Также реализуем возможность изменения размера лабиринта.
В конце напишем функцию для проверки корректности составленного уровня.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 1 час. 45 мин. [Показать отчёт]
Научился: Научился возвращать сообщение об ошибке. 
Сложности: Всё было самым сложным. Вообще всё. Голова пухнет. 1. toolWall.Checked = CurrentCell == Cell.wall; 2. x = ((Point)((PictureBox)sender).Tag).X; и т.д.... 
Комментарии:             for (int x = 0; x < Math.Min(w, width); x++)                 for (int y = 0; y < Math.Min(h, height); y++)                     NewCell[x, y] = cell[x, y]; В уроке говориться, что мы можем вылезти за пределы массива, и поэтому используем Мин-функцию... А как мы можем выйти за пределы? 
6 Сокобан - Редактор - Сохранение 00:44:47
84 чел. ★ 4.9 Done
  На четвёртом уроке мы закончим создание редактора уровней.
Напишем самую главную функцию для сохранения сделанных изменений в файл.
Затем добавим кнопки перехода к следующему и предыдущему уровню.
Останется только немного облагородить интерфейс программы.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 3 час. 00 мин. [Показать отчёт]
Научился: Научился сохранять и загружать уровень, добавлять новый в файл с уже существующими. 
Сложности: Самое сложное было понять, как сохраняется и загружается уровень.... 
Комментарии: Так здорово, что получился готовый редактор!! 
7 Сокобан - Редактор - Улучшение 00:29:00
81 чел. ★ 5 Done
  Допиливаем и дорабатываем редактор до товарного вида.
Реализуем ещё несколько фишек.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Научился разделять строку буквой x. 
Сложности: Всё на уровне. 
Комментарии: string[] wh = toolStripTextBoxLabibntSize.Text.Split(dl, StringSplitOptions.RemoveEmptyEntries); зачем то что идет после dl? 
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
  Твоя задача - подготовить базу уровней для игры Сокобан.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 3 час. 45 мин. [Показать отчёт]
Научился: Научился сам создавать простые уровни 
Сложности: Создавать уровни самому 
Комментарии: Было здорово попробовать поделать свои уровни в своём собственном редакторе. 
10 Сокобан - Игра - Интерфейс 00:43:45
1 тест
80 чел. ★ 5 Done
  Мы начинаем создание интеллектуальной игры СОКОБАН.
У нас уже есть все необходимые классы и уровни для создания полноценной игры.
На этом уроке мы создадим форму и настроим интерфейс окна лабиринта.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Познакомился с делегатами. 
Сложности: Самым сложным было понять, почему в функции InitPictures() panel подчеркивается красным. И почему Properties.Resources.игрок был тоже подчеркнут красным. 
Комментарии: ShowItem (new Place (5, 4), Cell.user)  - вот строка и сразу 2 вопроса: 1. Мы при передаче в функцию (!!) используем new... это мы сразу в ней создаём, то что надо, аналогично for (int i=0; .... ? 2. Из-за того что user является как бы полем структуры Cell мы не можем обратиться к нему напрямую (не ставя слева точку и записывая имя структуры...)? Приятно взять, совершить простой (ну болеменее) набор действий и получить готовое окошко с кнопочкой))) Как будто уже готовая игра... Так и хочется нажать на кнопку "начать игру" и начать... игру))) 
11 Сокобан - Игра - Управление 01:06:38
3 теста
69 чел. ★ 5 Done
  Теперь мы создадим класс логики игры Game,
используя который, мы реализуем управление человечком
курсорными клавишами клавиатуры.
А также сделаем переход на следующий уровень.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 3 час. 45 мин. [Показать отчёт]
Научился: Научился перехватывать стрелки клавиатуры. 
Сложности: Самое сложное было найти ошибку у себя, оставшуюся еще с редактора, когда следующий уровень, если его нет, не включало... 
Комментарии: Здорово! Теперь можно нажать на кнопку начать играть и начать!!!! .... .... Теперь надо сделать хак, чтобы можно было пропускать непройденные уровни.... 
12 Сокобан - Решалка - Тестер 00:59:55
1 тест
63 чел. ★ 5 Done
  На этом уроке мы напишем программу, которая будет
проверять правильность алгоритма поиска решения лабиринта.
http://www.videosharp.info/console/task/level=1178
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 2 час. 30 мин. [Показать отчёт]
Научился: Научился убирать лишние пробелы в строке. 
Сложности: Да вобщем-то только понять, как всё это работает. 
Комментарии: Точку переставили.  "Яблоко" совмещается с точкой, а правильность решения не пишется! Зато когда "яблоко" доходит до начального места точки, выдаётся, что решение писал инвалид.... 
13 Сокобан - Решалка - Мышка 00:53:02
1 тест
62 чел. ★ 5 Done
  Мы начинаем решать задачу по решению игры Сокобан с одним ящиком.
Эта задача олимпиадного уровня на применение алгоритма поиска вширь.
Главный герой - мышка Альфа, которая желает затолкать яблочко к себе в норку.
Программу мы напишем за два урока.
На первом уроке мы создадим вспомогательную функцию MoveAlfa(),
которая подскажет мышке как попасть из одной клетки лабиринта в другую кратчайшим путём.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: Немножко познакомился с очередью. 
Сложности: Повторить не сложно, сложно будет всё это понять.... 
Комментарии: 1  for (int y = 0; y < h; y++)    for (int x = 0; x < w; x++)    зачем поменяли циклы местами? почему необходимо сначала по y считывать? 2  string[] info = lines[0].Split(); - что обозначает 0 в квадаратных скобках? знак пробела? знак переноса строки в юникоде? 3  map = new char[w, h]; - уже инициализировали map выше, зачем делать еще раз это со словом new? можно ли map = [w][h];? Вопросы есть еще, но пока не буду их задавать.... 
14 Сокобан - Решалка - Яблоко 00:44:23
2 теста
60 чел. ★ 5 Done
  На втором уроке мы переделываем написанный алгоритм поиска маршрута мышки.
Теперь мы разрешаем мышке толкать яблоко, и записываем все изменения их расположений.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 2 час. 30 мин. [Показать отчёт]
Научился: Увидел, как можно разбивать программу на классы. 
Сложности: Было сложно. Очень сложно. 
Комментарии: Надо срочно (после окончания) заняться теорией ООП... И что-то писать самому... Общая идея то понятна, конечно, но детали реализации непостижимы. 
15 Сокобан - Решалка - Оптимизация 00:11:37
1 тест
60 чел. ★ 5 Done
  На этом коротком уроке мы рассмотрим два способа оптимизации нашей программы, в результате которых работать она станет просто молниеносно!!!
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 30 мин. [Показать отчёт]
Научился: Оптимизировать!)) 
Сложности: Ничего 
Комментарии: Ваще Абалденно!! Да!!!! Капец я напугался.. Думал это у меня лицензия закончилась)))))))))) 
16 Сокобан - Игра - Автоходы 00:42:22
1 тест
57 чел. ★ 5 Done
  Поздравляю, программа уже создана: можно играть, можно ею хвастаться.
На этом уроке мы добавим в игру автоходы, чтобы можно было
управлять нашим человечком с помощью мышки - указать, куда идти,
и даже указать, какой ящик куда нужно поставить.
Для этого нам потребуются два класса по решению лабиринта.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 3 час. 15 мин. [Показать отчёт]
Научился: Всё было на базе известных знаний. 
Сложности: Самым сложным было НАЙТИ ТО, ЧТО БЫЛО ИЗМЕНЕНО в классе AppleSolver!!! 
Комментарии: Мы сделали уникальную функцию, которой нет нигде более! Сууупер. 
Видеообзор: http://www.youtube.com/watch?v=CNYTNgy_014
17 Сокобан - Редактор - На двоих 00:31:57
1 тест
54 чел. ★ 5 Done
  Переделываем редактор уровней, чтобы можно было создавать лабиринты для двоих игроков.
Создаём базу из 10 новых уровней игры в Сокобан для двоих.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: Создавать уровни для двух игроков!! 
Сложности: Придумать свой уровень 
Комментарии: Чем дальше тем интереснее!!! У меня получилось добавить счетчик уровней! ЙЕССС!!! 
18 Сокобан - Игра - На двоих 00:15:40
54 чел. ★ 5 Done
  Переделать игру, чтобы в неё можно было играть вдвоём на одной клавиатуре.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 30 мин. [Показать отчёт]
Научился: Научился параллельному перехвату клавиш. 
Сложности: Ничего. 
Комментарии: Блин! Неудобно так! Надо было сделать не 2 4 6 8 на нумападе, а 5 4 6 8! Ну да ладно, главное понятно, как это сделать! 
19 Сокобан - Телефон - TCP/IP протокол 00:47:44
1 тест
65 чел. ★ 5 Done
  На этом видеоуроке мы создадим три класса, которые удобно
использовать для передачи данных между двумя компьютерами.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 2 час. 15 мин. [Показать отчёт]
Научился: Соединять 2 программы по TCP/IP. 
Сложности: Понять, как всё это работает. 
Комментарии: Просто супер! Полезность этого невозможно переоценить. Надеюсь в будущем улучшим, чтобы для нескольких клиентов тоже работало.  
20 Сокобан - Игра - На двоих по сети 00:56:59
1 тест
52 чел. ★ 5 Done
  На этом уроке мы наконец-таки сделаем сетевую версию программы Sokoban для двоих.
Мы будем использовать телефонный класс Phone с прошлого урока.

Отчёт отправил: 1901. Neverwinter 2 Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Соединять 2 программы по сети. 
Сложности: ВСЁ!! И особенно купить 2й компьютер и фотоаппарат для выполнения пунктов 14 и 15... Так и не получилось... 
Комментарии: про path = "3" так и не понял... Функция Recv() быстро работает и не дожидается - зависает, а path что? ....... Очень, очень сложный урок. 
21 Сокобан - Завершение 00:37:44
49 чел. ★ 5 Done
  Игра уже написана, но всегда можно сделать чуть-чуть лучше.
На этом уроке мы объединим оба варианта игры в одну программу
и загрузим файл с уровнями в ресурсы программы.
Теперь в одном ехешнике будет сразу всё!
Это финиш!!!
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 3 час. 00 мин. [Показать отчёт]
Научился: Узнал как в switch case можно делать "множественное наследование". 
Сложности: найти свои ошибки, когда не заработало. 
Комментарии: да! Да! ДА! ДА-А-А-А-А-А-А-А!!! Мы сделали это! Мы сделали!! Мы сделали это ВМЕСТЕ!!!! Единственное, что еще нужно добавить, так это редактор, чтобы файл levels каждый раз в ресурсы не копировать! Ну, портфолио пока нету, я с сокобана начал, в будущем добавлю и в портфолио. 
22 ФИНАЛЬНЫЙ урок. Видео-обзор проекта Сокобан 00:23:23
35 чел. ★ 5 Done
  Задание:
Записать видеообзор игры СОКОБАН.

Отчёт отправил: 1901. Neverwinter 2 Выполнено за 15 мин. [Показать отчёт]
Научился: Всё умел. 
Сложности: Ничего. 
Комментарии: Вот мой обзор на курс Сокобан. Надо бы поправить описание урока. А то там требуется обзор на Пасьянс домино... 
Видеообзор: http://youtu.be/4IVUSinMDbA
23 VIP. Бот для игры БАЛДА 01:22:57
16 чел. ★ 5 Done
  Используя текстовый файл из 27400 слов
создаём рекурсивный алгоритм подбора
слов для популярной игры Балда.
Отчёт отправил: 1901. Neverwinter 2 Выполнено за 3 час. 00 мин. [Показать отчёт]
Научился: Познакомился с алгоритмом подбора слов для игры балда 
Сложности: Самым сложным было составить этот довольно трудный, навороченный алгоритм. 
Комментарии: Кстати, в словаре мы одну букву пропустили))) 
Видеообзор: cs-7eVG_mUE
  Итого:   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