C# обучение для чайников

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

Игра СОКОБАН

Приглашаю пройти видеокурс по созданию полноценной игровой программы СОКОБАН.
Мы вместе, за руку, пройдём по всем этапам создания законченной интеллектуальной игры.
1. Создание редактора уровней.
2. Придумывание этих самых уровней.
3. Создание собственно игры.
4. Решение олимпиадной задачки для добавления ИИ.
5. Переделка игры в режим "на двоих".
6. Написание класса Phone для связи двух программ по сети.
7. Создание сетевой версии игры Sokoban.
8. Оформление итоговой программы.

Открытие 27 ноября в 18:00

Название: Игра Сокобан
Объём: 21 видеоурок.
Доступ: 30 дней

5,000 руб


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

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

# Название видеоурока Решило Рейтинг Доступ
1 Сокобан - Вступление 00:11:09 114 чел. ★ 4.8 Done
  Отчёт отправил: 4972. looker Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Играть в игру Мир Сокоба. 
Сложности: Пройти некоторые уровни. 
Комментарии: Игру проходил онлайн в инете. Правда, не сделал скрин с последнего уровня. 
2 Сокобан - Подготовка - Картинки и лабиринт 00:04:56 76 чел. ★ 4.9 Demo
3 Сокобан - Редактор - Загрузка 00:33:25 76 чел. ★ 4.9 Done
  Отчёт отправил: 4972. looker Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Логике построения уровней в игре. 
Сложности: Ничего. 
Комментарии: Хотелось бы увидеть в будущих уроках построение другого редактора уровней в самой игре, а не через файл. В некотором роде в таком подходе получается двойная работа. 
4 Сокобан - Редактор - Интерфейс 00:40:37 63 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 1 час. 20 мин. [Показать отчёт]
Научился: Работать с новыми контролами на форме. Динамически добавлять pictureBox'ы.  
Сложности: Не сразу понял логику расположения pictureBox'ов на панели. Именно саму формулу, по которой они располагаются. В остальном всё ок. И конечно ооооочень долго искал подходящие картинки. 
Комментарии: Если есть у кого-нибудь какой-нибудь ресурс с большим количеством разных картинок разных размеров, буду признателен если поделитесь. А то рисовать ну очень не хочеться.:) 
5 Сокобан - Редактор - Редактирование 00:38:33 56 чел. ★ 4.9 Done
  Отчёт отправил: 4972. looker Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Свойство Tag.  
Сложности: Опять же - полностью вникнуть в логику построения программы. 
Комментарии: В этом уроке мы написали функцию IsGoodLevel() для проверки перед сохранением уровня игры, но так и не использовали её. 
6 Сокобан - Редактор - Сохранение 00:44:47 54 чел. ★ 4.9 Done
  Отчёт отправил: 4972. looker Решено за 2 час. 30 мин. [Показать отчёт]
Научился: В принципе ничему новому. Просто пытаюсь абсолютно полностью вникать в логику построения игры и понять логику написания кода этой игры. 
Сложности: Выловить ошибку в конце. 
Комментарии: Всё в порядке, всё хорошо. 
7 Сокобан - Редактор - Улучшение 00:29:00 53 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Нового ничего. 
Сложности: Не сразу сработало прямоугольное заполнение лабиринта. 
Комментарии: Всё ок. 
8 Сокобан - Создаём свои уровни 00:08:05 51 чел. ★ 4.9 Done
  Отчёт отправил: 4972. looker Решено за 30 мин. [Показать отчёт]
Научился: Проявлять фантазию, тесно переплетенную с логикой.:) 
Сложности: Придумать свои уровни. 
Комментарии: Всё ок. 
9 Сокобан - Игра - Интерфейс 00:43:45 52 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Нового ничего. Жду использование делегатов - интересно. 
Сложности: Ничего сложного. 
Комментарии: Всё в порядке. 
10 Сокобан - Игра - Управление 01:06:38 46 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 5 час. 30 мин. [Показать отчёт]
Научился: Новое применение делегатов увидел. 
Сложности: Понимать логику программы во время написания кода. ОООЧень долго приходилось разбираться в том, что именно ты кодишь и почему оно работает, и почему оно работает именно так как ты кодишь.:))) Вообщем, самый трудный урок из всех предыдущих. 
Комментарии: Всё хорошо, спасибо. 
11 Сокобан - Решалка - Тестер 00:59:55 40 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 1 час. 30 мин. [Показать отчёт]
Научился: В принципе ничему новому. 
Сложности: Ничего. 
Комментарии: Непонятен 1 момент - когда мы передвинули "норку" для мышкиного "яблока", и потом мышка двигала "яблоко", то она передвигала его как раз через свою норку в новом месте. И получается, что как бы задача решена - "яблоко" уже в норке, но решение не засчитывается и мышка продолжает его двигать до места, где с самого начала была "норка" до изменения. Я понимаю, что в любом случае программа должна отработать всю последовательность решения из файла Solution.txt, но все же - как-то странно. Видимо, мы этот алгоритм будем ещё совершенствовать. 
12 Сокобан - Решалка - Мышка 00:53:02 39 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Как открывать командную строку из определенной папки:))))))) 
Сложности: Придумать свой лабиринт. 
Комментарии: Вот такой кусочек кода map[x, y] = lines[y+1][x] из нашей программы - я так понял он вытягивает x-вый элемент char из y+1-го string-элемента массива lines[]? Т.е. такая конструкция применима для любой переменной string, если мы хотим вытянуть из него определенный по номеру char-элемент? 
13 Сокобан - Решалка - Яблоко 00:44:23 38 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Находить и устранять свои ошибки. 
Сложности: Не знаю насколько это сложное, но у меня в итоге тестер при правильном решении выдает в конце надпись "Solution INcorrect", хотя на самом деле все очень даже correct. Думаю, что дело в самом тестере, а не в солвере. Разберусь с этим уже завтра. 
Комментарии: Всё отлично и замечательно. Приятно видеть результаты своего кодинга, особенно когда эти результаты совпадают с твоими ожиданиями.:) 
14 Сокобан - Решалка - Оптимизация 00:11:37 38 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 20 мин. [Показать отчёт]
Научился: Использовать 4-мерные массивы. Я так понял, что он представляет собой перечень комбинаций положений мышки и яблока относительно друг друга в координатах поля (x, y). И высокая скорость его работы состоит в том, что каждый мы не перебираем все варианты (как было до этого со списком List и Dictionary), а смотрим 1 конкретный вариант исходя из наших координат мышки и яблока. 
Сложности: Понять как именно мы используем 4-мерный массив. 
Комментарии: Всё хорошо. Время работы программы при использовании Dictionary было 1500-1600 мс. После применения массива время уменьшилось до 7-11 мс. 
15 Сокобан - Игра - Автоходы 00:42:22 37 чел. ★ 4.9 Done
  Отчёт отправил: 4972. looker Решено за 2 час. 30 мин. [Показать отчёт]
Научился: Мониторить код и искать у себя ошибки, будь они неладны... 
Сложности: Найти ошибку у себя, из-за которой ходы игрока как буд-то обрывались наполовине. 
Комментарии: Всё в порядке. 
16 Сокобан - Редактор - На двоих 00:31:57 33 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Проявлять фантазию. 
Сложности: Придумать свои собственные уровни, которые реально можно пройти только с помощью 3-ух игроков. 
Комментарии: Мне показалось, что 1 из Ваших уровней невозможно пройти. 
17 Сокобан - Игра - На двоих 00:15:40 33 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 30 мин. [Показать отчёт]
Научился: Играть за 2 игроков в Сокобан.:)))) 
Сложности: Ничего. 
Комментарии: Удивлен, что так легко и быстро получилось переделать игру под 2 игроков. 
18 Сокобан - Телефон - TCP/IP протокол 00:47:44 44 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Использовать потоки("нити")(наконец-то много поточность..))))..) и ещё немножко закрепил умения пользоваться делегатами, что тоже очень хорошо для меня. 
Сложности: Делегаты и многопоточность - это тёмный-тёмный лес для меня, в котором водятся непойми кто или непойми что. Вроде в теории всё просто и понятно, а вот как и когда на практике их применять - ооооохххххх....... Но после этого урока парочку "зверей" из этого леса я узнал и понял как можно и когда нужно их использовать. 
Комментарии: Всё замечательно! Я впервые написал программу, которая хоть как-то, даже так примитивно, но уже работает по сети! Круто! Я действительно в восторге! Спасибо за урок, Евгений Витольдович! Попеременное отключение/включение то сервера, то клиента работает. 
19 Сокобан - Игра - На двоих по сети 00:56:59 32 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 1 час. 40 мин. [Показать отчёт]
Научился: Опять делегаты. Опять потоки. Для любое использование их является "+" в мою копилку. Ещё вспомнил про свойство IsBackground. 
Сложности: Всё было настолько сложно, насколько и интересно.:) 
Комментарии: Интересен тот факт, что когда мы запускали на прошлом уроке (когда сделали класс Phone) 2 приложения (и клиент и сервер), то тогда не было проблем с незакрывающимся вторым потоком, хотя там мы не используем свойство IsBackground. 
20 Сокобан - Завершение 00:37:44 31 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 2 час. 20 мин. [Показать отчёт]
Научился: Искать и находить свои ошибки. 
Сложности: Ничего. 
Комментарии: Я это сделал! Я в восторге! Уже есть что-то такое - что можно показать в качестве продукта своего навыка программирования! Спасибо большое за такую возможность, Евгений Витольдович!:) 
21 ФИНАЛЬНЫЙ урок. Видео-обзор проекта Сокобан 00:23:23 21 чел. ★ 5 Done
  Отчёт отправил: 4972. looker Решено за 3 час. 00 мин. [Показать отчёт]
Научился: Делать видео-обзоры. 
Сложности: Сделать видео-обзор. 
Комментарии: Всё замечательно. 
Видеообзор: https://youtu.be/jQGjKULdWVg
22 VIP. Бот для игры БАЛДА 01:22:57 4 чел. ★ 5 $
  Итого:   22 видеоурока общей продолжительностью 13 час. 48 мин. 4 чел. ★ 4.97  
  Финалисты:   zhikharevav,   Ильшат,   Максим,   Новопашин Владимир .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Практикуюсь в записи видеообзоров
Трудности: Сделать запись. При закуске программы возникла ошибка. пришлось ее исправлять и все переделывать.
Я завершила этот курс!!!
Смотреть видеозапись: https://youtu.be/mCgKbXAxru0
Научился: Записывать видеообзоры
Трудности: Ничего
Всё отличо
Смотреть видеозапись: https://youtu.be/8NNJY7PPADI