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
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Играть в Сокобан 
Сложности: Найти время 
Комментарии: Играла онлайн, без установки игры. 
2 Сокобан - Подготовка - Картинки и лабиринт 00:04:56 76 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Рисовать уровни Сокобан в блокноте 
Сложности: Найти и нарисовать картинки 
Комментарии: Хочется продолжения :) 
3 Сокобан - Редактор - Загрузка 00:33:25 76 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 45 мин. [Показать отчёт]
Научился: Создавать редактор уровней. Загружать уровни из файла. 
Сложности: Сохранить файл, чтобы он был виден для считывания. 
Комментарии: Мне кажется, более корректно все-таки использовать cell[y, x] - сначала обращаться к строке, потом - к столбцу. 
4 Сокобан - Редактор - Интерфейс 00:40:37 63 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Использовать ToolStrip 
Сложности: Разобраться с изменением размеров формы 
Комментарии: Не знаю, это только моя проблема или кто-то с этим тоже сталкивался. Возможно, это свойство Visual Studio 2013. При создании формы вызывается метод Resize, и возникает исключение, поскольку массив box еще не сформирован. Решила проблему, обработав метод ResizeEnd формы. С одной стороны, это, конечно, хорошо, потому что перерисовка происходит только в момент, когда изменения размеров формы закончились. С другой стороны, этот метод не вызывается при нажатии на кнопку MaximizeBox. Пока оставила без нее. Возможно, потом перенесу обработку в метод Resize, введя какой-то флаг, который не будет вызывать функцию пока форма не проинициализирована (уже есть опыт такой реализации в игре Lines). 
5 Сокобан - Редактор - Редактирование 00:38:33 56 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Редактировать игровое поле 
Сложности: Понять, зачем нужен ItemClick для добавления строки и столбца (который в результате оказался не нужен) 
Комментарии: Почему-то при запуске игры у элемента меню wall установлено свойство Checked = true, но на поле он не появляется. Думаю, что лучше сформировать единый ответ со всеми ошибками в функции IsGoodLevel. Обещаю найти картинку для Resiza к следующему уроку :) 
6 Сокобан - Редактор - Сохранение 00:44:47 54 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Смещать записи внутри файла 
Сложности: вроде ничего 
Комментарии: Сделала запрос на сохранение уровня при переходе на преыдущий/следующий. Правда, не знаю пока, хорошо это или плохо. Как и обещала, добавила картинки на кнопки :). 
7 Сокобан - Редактор - Улучшение 00:29:00 52 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Использовать элементы управления toolStrip 
Сложности: Обработать двойной щелчок мыши и сделать отдельный обработчик для user. 
Комментарии: Немного доработала функции перехода между уровнями. Теперь вопрос о сохранении уровня задается только если в уровень вносились изменения (изменение размеров или элементов). Удалила звук, который выдается при нажатии на Enter в поле ввода размеров лабиринта. Для этого создала обработчик private void toolLevelSize_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Enter) e.Handled = true; }  
8 Сокобан - Создаём свои уровни 00:08:05 49 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 30 мин. [Показать отчёт]
Научился: Придумывать уровни 
Сложности: Определиться с тем, как эти уровни проходить 
Комментарии: Неудобно, что в редакторе размеры меняются только вправо и вниз. Уже нарисовала "рисунок" стен и захотела вверх строчку вставить - все перерисовывать надо. 
9 Сокобан - Игра - Интерфейс 00:43:45 52 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Вызывать одну форму из другой 
Сложности: Создание делегатов (пока я их не до конца понимаю). 
Комментарии: На форме Welcome у меня установлена картинка с прозрачным фоном. У фонового изображения формы можно установить свойство BackgroundImageLayout = Zoom, чтобы картинка растянулась по размеру формы.  
10 Сокобан - Игра - Управление 01:06:38 45 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Управлять перемещением ящиков. 
Сложности: Опять столкнулась с вызовом метода Resize до инициализации компонентов. Поставила проверку первого запуска. 
Комментарии: Новым было двойное присваивание. Никогда раньше его не использовала: width = w = map.GetLength(0); height = h = map.GetLength(1); 
11 Сокобан - Решалка - Тестер 00:59:55 40 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 20 мин. [Показать отчёт]
Научился: Все уже знакомо 
Сложности: Найти, почему яблоко не отображается :) 
Комментарии: Все получилось довольно легко. Урок воспринимается гораздо легче, чем в феврале на вебинаре вживую, потому что уже достаточно проработаны уровни Сокобана и знания накоплены. 
12 Сокобан - Решалка - Мышка 00:53:02 39 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 20 мин. [Показать отчёт]
Научился: Закрепила алгоритм поиска в ширину 
Сложности: сделать отображение "маршрута" Мышки 
Комментарии: Решила все-таки Мышку не убирать с поля - все равно в эту клетку повторно нет смысла возвращаться. Хотя, наверное, правильнее элемент с Мышкой в список Visited сразу добавить.  
13 Сокобан - Решалка - Яблоко 00:44:23 38 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 2 час. 30 мин. [Показать отчёт]
Научился: двигать яблоко 
Сложности: Разобраться в алгоритме, чтобы отобразить движение Мышки и яблока 
Комментарии: Не сразу поняла, как находится решение для перемещения яблока. Долго провозилась, чтобы сделать отображение по шагам в этой же программе. Второй скриншот получился после первого шага Мышки, не стала переделывать. 
14 Сокобан - Решалка - Оптимизация 00:11:37 38 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 15 мин. [Показать отчёт]
Научился: Оптимизировать время выполнения программы 
Сложности: ничего 
Комментарии: Результат, который показал мой лабиринт при оптимизации 500 - 300 -30 500 - со списком 300 - с Dictionary 30 - с 4-мерным массивом (значения приближенные) Dictionary использовала впервые! 
15 Сокобан - Игра - Автоходы 00:42:22 36 чел. ★ 4.9 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Создавать свой Сокобан 
Сложности: Исправить ошибки и внести изменения, связанные с переходом от консольной версии к оконной. 
Комментарии: Долго искала, почему ящик не двигается :) Все отлично!!! Уже получился готовый Сокобан. Отлаживала поздравительный диалог, поэтому на скрине всего 2 уровня. Есть мысль сохранять в реестре последний уровень, чтобы при повторном запуске можно было продолжить игру. 
16 Сокобан - Редактор - На двоих 00:31:57 33 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Создавать уровни для двух игроков 
Сложности: Понять, как проходить эти самые уровни 
Комментарии: Отличный урок! 
17 Сокобан - Игра - На двоих 00:15:40 33 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 25 мин. [Показать отчёт]
Научился: Создавать управление двумя персонажами 
Сложности: ничего 
Комментарии: на ноутбуке нету цифровой клавиатуры, поэтому реализовала управление W-A-S-Z 
18 Сокобан - Телефон - TCP/IP протокол 00:47:44 44 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Первые шаги в проектировании Клиент-Серверных приложений 
Сложности: Ничего. Все очень подробно объяснено. 
Комментарии: Отличный урок! Новые знания! Никогда раньше не приходилось работать с TCP/IP протоколом. Самое близкое, что приходилось делать - это подключать устройство через виртуальный USB-порт (видимый как COM) для обмена данными. Поэтому с COM-портом работать умею (кстати, делала проект на C#, используя стандартный класс), а вот связывать между собой компьютеры ... теперь тоже умею :)  
19 Сокобан - Игра - На двоих по сети 00:56:59 32 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 20 мин. [Показать отчёт]
Научился: Использовать связь двух компьютеров по TCP/IP в оконном приложении. 
Сложности: перезагрузить уровни в обоих окнах 
Комментарии: Осталось попробовать поиграть по сети :) 
20 Сокобан - Завершение 00:37:44 31 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Объединять проекты (одиночная игра и игра по сети) 
Сложности: найти последнюю ошибку :) (боюсь, что это пока не удалось - все ошибки почему-то предпоследние) 
Комментарии: Уже решила записывать видеообзор для финального урока - и обнаружила, что не исправила обработчик кнопки Esc. Вот досада :( Пришлось переделывать. 
21 ФИНАЛЬНЫЙ урок. Видео-обзор проекта Сокобан 00:23:23 21 чел. ★ 5 Done
  Отчёт отправил: 4004. Елена Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Практикуюсь в записи видеообзоров 
Сложности: Сделать запись. При закуске программы возникла ошибка. пришлось ее исправлять и все переделывать. 
Комментарии: Я завершила этот курс!!! 
Видеообзор: https://youtu.be/mCgKbXAxru0
22 VIP. Бот для игры БАЛДА 01:22:57 4 чел. ★ 5 Open
  Итого:   22 видеоурока общей продолжительностью 13 час. 48 мин. 4 чел. ★ 4.97  
  Финалисты:   zhikharevav,   Ильшат,   Максим,   Новопашин Владимир .

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




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

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

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

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