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
  Отчёт отправил: 6452. Lik_Kirill Решено за 1 час. 00 мин. [Показать отчёт]
Научился: ничему 
Сложности: ничего сложного 
Комментарии: играл много раз, хотелось бы уже сделать что-то своё, а не пользоваться чужим! 
2 Сокобан - Подготовка - Картинки и лабиринт 00:04:56 76 чел. ★ 4.9 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Подбирать исходный материал, продумывать логику уровня 
Сложности: придумать уровень 
Комментарии: я решил немного переиграть цель игры. общую цель хочу сделать как из игры CounterStrike. хочу чтобы дяденьки полицейские искали заложников и отводили в места эвакуации. а всё остальное как у Сокобана. надеюсь в дальнейшем с Вашей помощью реализую) 
3 Сокобан - Редактор - Загрузка 00:33:25 76 чел. ★ 4.9 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 3 час. 00 мин. [Показать отчёт]
Научился: Считывание файла для последующего его постоянного использования(запись в массив), отработал работу с отладчиком, с просмотром данных в любой момент работы программы! 
Сложности: назвал переменные по-своему, и запутался. пришлось начинать с начала. а обычно я конечно же стараюсь делать свои переменные. 
Комментарии: Дополнительный(свой) уровень делал на работе, прикладывал в предыдущем задании. поэтому здесь только "рабочие" 
4 Сокобан - Редактор - Интерфейс 00:40:37 63 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 3 час. 00 мин. [Показать отчёт]
Научился: Считывать из файла данные и интерпретировать их в графические объекты, расположенные на форме. 
Сложности: Понимание перехода: текстовый файл->массив->картинка->заполненная форма 
Комментарии: Я не понял почему и зачем нужно размещать картинки на Panel а не напрямую на Form, или Form что-то не поддерживает? 
5 Сокобан - Редактор - Редактирование 00:38:33 56 чел. ★ 4.9 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 3 час. 00 мин. [Показать отчёт]
Научился: Строить свои редакторы уровней, в которых можно самому менять значение ячеек, количество столбцов и строк матрицы. Строить дополнительные оптимизации и проверки на корректность уровней. 
Сложности: уследить что за чем идет, чтобы самому контролировать код, а не чтобы код контролировал меня! 
Комментарии: Почему размеры ящика у вас это две величины? они же всегда должны быть одинаковыми(квадратными), я их сделал одним значением. Так же как и максимальный и минимальный размер полей. При добавлении нового столбца/строки лучше чтобы добавлялись стены (ведь это крайние клетки), а не пустое поле. Что я тоже реализовал, просто поставив первым значение Wall при создании Cell{} 
6 Сокобан - Редактор - Сохранение 00:44:47 52 чел. ★ 4.9 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 3 час. 00 мин. [Показать отчёт]
Научился: Работа с файлами, вынесение всех используемых переменных в общий доступ, а не нужных - оставлять внутри процедуры. Разбивать программу на много мелких процедур, чтобы впоследствии использовать только эти кусочки для уже другого результата, чем использовались в начале. Отработал навык пользования Отладчиком. 
Сложности: Работа с отладчиком, держать в голове какая процедура за какой идет и что выполняет, поэтому пришлось писать много комментариев в программе. 
Комментарии: Я думаю что при переходе между уровнями нельзя их сохранять, а вдруг я передумал и хочу вернуть как было?! а при сохранении добавить проверку что на карте есть юзер и есть одна коробка, это как бы минимальное требование к уровню. У вас ещё процедуры называются одинаково (SaveLevel) в классе LevelFile и в SokobanEditor. Мне кажется что может быть путаница. 
7 Сокобан - Редактор - Улучшение 00:29:00 51 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 3 час. 00 мин. [Показать отчёт]
Научился: С текстового поля по мною указанному разделителю считывать информацию для дальнейшего использования. Работа с логикой программы 
Сложности: В цикле установил не ту переменную и программа зацикливалась, разбирался почему. Оставил добавление и убирание одной строки или столбца. Если не хватает всего одной строки то так удобнее добавить 
Комментарии: Замечание: если после смены размера поля через текстовое поле сразу же редактировать уровень(без выбора через верхнее меню), то двойной клик мыши не срабатывал. Дописал после проверки кода клавиши переход фокуса на панель. тогда можно сразу продолжать редактировать уровень if (e.KeyCode == Keys.Enter) { ToolResizeLevel(); panel.Focus();//тут дописал чтобы терялся фокус } 
8 Сокобан - Создаём свои уровни 00:08:05 49 чел. ★ 4.9 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 3 час. 00 мин. [Показать отчёт]
Научился: Терпимости 
Сложности: Самое сложно это всегда заставлять себя, например заставлять себя думать. Но только начинать трудно, а дальше уже будет нравится! 
Комментарии: После первого десятка я понял что следить за уровнем было бы интересно, и добавил свою примочку. Если обратите внимание то у меня переписывается заголовок формы(наверху указан текущий уровень), а внизу скрина я показал как это можно реализовать одной строкой. 
9 Сокобан - Игра - Интерфейс 00:43:45 52 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Думать, загружать в одном Решении несколько форм, манипулировать ими. Побольше узнал о структуре, перечислении, как ими правильнее пользоваться 
Сложности: работа над ошибками 
Комментарии: много кода, который для использования копируется, а не организовывается использование того же. Но я так понял что на следующих уроках это будет оптимизировано, ждем-с...  
10 Сокобан - Игра - Управление 01:06:38 45 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 4 час. 00 мин. [Показать отчёт]
Научился: изменять массив в зависимости от нажатых клавиш на клавиатуре. программа становится более массивной, и уследить за логикой становится труднее 
Сложности: увязать игру с редактором уровней 
Комментарии: я сразу написал строку if (placed == totals && level_nr==last_level_nr) last_level_nr = level_nr + 1; а вот с увязкой с редактором уровней пришлось повозиться 
11 Сокобан - Решалка - Тестер 00:59:55 40 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 1 час. 00 мин. [Показать отчёт]
Научился: анимации в консоли 
Сложности: протестировать самостоятельно тестер 
Комментарии: пока не понимаю как сделать чтобы робот сам придумал кротчайшее решение, только вручную своим моСКом, но думаю что это чуть погодя будет, в следующих уроках. 
12 Сокобан - Решалка - Мышка 00:53:02 38 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Поиску маршрута по правилу "Поиск в ширину" 
Сложности: самому найти маршрут чтобы проверить работу робота 
Комментарии: у меня на скрине путь от Объекта до Яблока, а не до Домика как сказано в задании 
13 Сокобан - Решалка - Яблоко 00:44:23 37 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 1 час. 00 мин. [Показать отчёт]
Научился: пользоваться классами 
Сложности: искать ошибки в своем коде 
Комментарии: на скрине 1. сам уровень 2. решение роботом 3. контрольное решение, предоставленное Orange(они одинаковые) 
14 Сокобан - Решалка - Оптимизация 00:11:37 37 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 10 мин. [Показать отчёт]
Научился: Больше узнал о List и Dictionary 
Сложности: осознание 
Комментарии: на скрине слева старые показатели, справа новые 
15 Сокобан - Игра - Автоходы 00:42:22 36 чел. ★ 4.9 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Соединять теорию с практикой. Заставлять компьютер двигать персонажи так как хочу я 
Сложности: Поиск и работа над ошибками 
Комментарии: А где же редактор уровней? Я подшаманил и засунул это всё в один проект, чтобы из главного меню можно было редактировать и тут же и играть! 
16 Сокобан - Редактор - На двоих 00:31:57 33 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 2 час. 00 мин. [Показать отчёт]
Научился: прокачал навыки 
Сложности: работа над ошибками 
Комментарии: а можно в ресурсах хранить файл с уровнями(это я уже реализовал), а главное чтобы можно было редактировать и заново в ресурсы запихивать? 
17 Сокобан - Игра - На двоих 00:15:40 33 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 1 час. 00 мин. [Показать отчёт]
Научился: работа над ошибками 
Сложности: самому решить поставленную задачу 
Комментарии: всё было сделано в предыдущем уроке, здесь только отшлифовали 
18 Сокобан - Телефон - TCP/IP протокол 00:47:44 44 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 2 час. 00 мин. [Показать отчёт]
Научился: работать с сетевыми технологиями TCP/IP через C#, передавать данные между компьютерами, делать отказоустойчивую связь. 
Сложности: работа с различными типами данных 
Комментарии: слева на скрине сервер, справа клиент. данные совпадают 
19 Сокобан - Игра - На двоих по сети 00:56:59 32 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Синхронизации двух программ, передачи нужной мне информации, логике при передачи(потере) информации 
Сложности: работа над ошибками синхронизации 
Комментарии: правильно было сказано, чтобы отдавать пользователям над этой программой ещё работать и работать, много багов нужно повыгребать 
20 Сокобан - Завершение 00:37:44 31 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 1 час. 00 мин. [Показать отчёт]
Научился: продумывать все возможные варианты 
Сложности: соединить всё воедино 
Комментарии: мои доработки: 1. я оставил возможность корректировать уровни(SokobanEditor) 2. если уровни были скорректированы, то они сохраняются в файл, и в начале проверяется наличие этого(этих) файлов 3. добавил в Мои документы на компьютере чтобы создавался файл, в котором хранится пароль от последнего пройденного уровня, и в начале проверяется есть ли файл, пароль, от этого дается возможность пропускать уровни, которые были пройдены ранее (у меня их 63 :-) ) ну и для новичков по поводу доработки - ВОЗМОЖНОСТИ БЕЗГРАНИЧНЫ, они ОГРАНИЧЕНЫ ЛИШЬ ВАШЕЙ ФАНТАЗИЕЙ! 
21 ФИНАЛЬНЫЙ урок. Видео-обзор проекта Сокобан 00:23:23 21 чел. ★ 5 Done
  Отчёт отправил: 6452. Lik_Kirill Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Всем здравствуйте! При разработке моей игры CounterStrike Sokoban я научился многим вещам, таким как работать с панелями, создавать их программно, размещение картинок, загрузка данных из файлов и ресурсов, динамически изменять картинки в связи с заданными условиями. Научился работать с классами, подклассами, с приватными и глобальными переменными, в одном проекте использовать несколько форм одновременно. Узнал о таком методе поиска маршрута как "Поиск в ширину" и смог его реализовать в своей игре для увеличения комфортности игры. Научился передавать данными между компьютерами и завязывать всё это в одной форме, т.е. два человека на различных компьютерах управляют одной и той же формой. Мне как программисту этот видеокурс принес много нового и, порой, неожиданного в изучении возможностей языка C#. При написании других проектов ловлю себя на мысли, что вспоминаю как это было реализовано в CounterStrike Sokoban и понимаю что это возможно - это раз, что это не сложно - это два, и всё это реально можно сделать, главное применить капельку фантазии, а базу Евгений Витольдович уже заложил. P.S. для новичков по поводу доработок - ВОЗМОЖНОСТИ БЕЗГРАНИЧНЫ, они ОГРАНИЧЕНЫ ЛИШЬ ВАШЕЙ ФАНТАЗИЕЙ! Ваяйте, создавайте, не пугайтесь трудностей, они лишь у вас в голове! 
Сложности: Учиться с Евгением Витольдовичем легко и быстро, главное не гоните лошадей, одно-два занятия в день легко усваиваются, если больше - можете пропустить что-то важное! 
Комментарии: В видео не сказал ещё что редактор уровней для одиночной и для многопользовательской игры разные уровни редактирует, разные создает на диске, и если они есть то тоже никак не пересекаются с одиночной игрой 
Видеообзор: https://youtu.be/NSwo5RVoHUI
22 VIP. Бот для игры БАЛДА 01:22:57 4 чел. ★ 5 $
  Итого:   22 видеоурока общей продолжительностью 13 час. 48 мин. 4 чел. ★ 4.97  
  Финалисты:   zhikharevav,   Ильшат,   Максим,   Новопашин Владимир .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Создавать видеообзоры, и Самое главное доводить проекты до конца!
Трудности: Всего и не перечислишь. Все организовать для записи. записать видео с первого раза.
Я рад что выбрал этот проект и сделал его полностью! Это мой первый проект и я верю что будут еще! Хоть и вышла накладка с видео, но я решил так и оставить. УРА! Пишите код, каждый день, ни дня без кода, и вы всего достигнете! Не знаю как приложить архив.
Смотреть видеозапись: https://youtu.be/oc-iAxFFlZE
Научился: Доводить курс до конца.
Трудности: записывать ночью
Замечательный курс. Тут и создание классов, и их взаимодействие - очень было полезно все это сделать.
Смотреть видеозапись: https://youtu.be/Q0CazQPvgNg