# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
4 теста |
|||
Я приглашаю вас на видеокурс по созданию полноценной игровой программы СОКОБАН. Я проведу вас за руку по всем этапам создания законченной интеллектуальной игры: 1. Создание редактора уровней. 2. Придумывание этих самых уровней. 3. Создание собственно игры. 4. Решение олимпиадной задачки для добавления ИИ. 5. Переделка игры в режим "на двоих". 6. Написание класса Phone для связи двух программ по сети. 7. Создание сетевой версии игры Sokoban. Будет интересно! В конце видео - первое задание: Научиться играть! :) Ссылка на игру Сокобан Отчёт отправил: 4814. Дмитрий Выполнено за 30 мин. [Показать отчёт] Научился: Ничему Сложности: Пока ничего Комментарии: Все хорошо. |
|||||
2 |
![]() |
1 тест |
|||
На этом уроке мы подготовим 6 пиктограмм и две картинки для игры, а также придумаем свой собственный уровень, который запишем в текстовый файл. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 00 мин. [Показать отчёт] Научился: Пока ничему, только готовлюсь Сложности: 1 час ушел на то, чтобы придумать и сделать работающий уровень. Еще 2 часа на возню с картинками. Комментарии: Все замечательно |
|||||
3 | Сокобан - Редактор - Загрузка |
|
|||
Мы начинаем создавать редактор уровней для известной логической игры Sokoban. Редактор будет создан за четыре урока. На первом уроке мы создадим класс для загрузки уровня с текстового файла и протестируем его работу. Отчёт отправил: 4814. Дмитрий Выполнено за 5 час. 00 мин. [Показать отчёт] Научился: Работе с Enum Cell, функциями CharToCell и CellToChar, и т.п. Сложности: Повозился с ошибками, когда в функциях CharToCell и CellToChar не убрал void. Долго искал как сделать пошаговое тестирование и где находятся эти локальные окна. Комментарии: все замечательно. Вот только уж больно простые уровни для сокобана. Утаскивать чужие из инета - не хочется, а выдумывать свои - нет времени. |
|||||
4 | Сокобан - Редактор - Интерфейс |
|
|||
На этом уроке мы создадим интерфейс программы и сделаем отображение загруженного уровня на экране. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 00 мин. [Показать отчёт] Научился: много полезных функций вроде InitPictures, LoadPictures, CellToImage, динамическое изменение. А также помещение картинок в матрицу. Сложности: Как и всегда - не ошибиться при повторе действий шаг за шагом. Комментарии: Очень понравилось |
|||||
5 | Сокобан - Редактор - Редактирование |
|
|||
На третьем уроке мы сделаем наконец-таки редактирование поля. Также реализуем возможность изменения размера лабиринта. В конце напишем функцию для проверки корректности составленного уровня. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 00 мин. [Показать отчёт] Научился: Работать с функциями SetCuttentCell, SgowCell, IsGoodLevel и CountItems. Менять размеры поля. Сложности: Повторять шаг за шагом все действия. :-) Комментарии: Все замечательно. |
|||||
6 | Сокобан - Редактор - Сохранение |
|
|||
На четвёртом уроке мы закончим создание редактора уровней. Напишем самую главную функцию для сохранения сделанных изменений в файл. Затем добавим кнопки перехода к следующему и предыдущему уровню. Останется только немного облагородить интерфейс программы. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 00 мин. [Показать отчёт] Научился: Создавать редактор уровней, переходы между уровнями, сохранять новые уровни Сложности: Не сбиться, идя шаг в шаг! :-) Комментарии: все понравилось! |
|||||
7 | Сокобан - Редактор - Улучшение |
|
|||
Допиливаем и дорабатываем редактор до товарного вида. Реализуем ещё несколько фишек. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 00 мин. [Показать отчёт] Научился: Заполнять клетки по площадям, создавать счетчики объектов игры. Сложности: Не потерять какую-нибудь точку или запятую. Комментарии: Все понравилось. |
|||||
8 | Сокобан - Редактор - Классика уровней |
1 тест |
|||
На этом уроке вам нужно выбрать любых два классических уровня и создать их в нашей программе-редакторе. Ссылка на классические уровни: https://logic-games.spb.ru/sokoban/ Редактор можно скачать здесь: https://www.videosharp.info/data/soft/SokobanEditor.zip Отчёт отправил: 4814. Дмитрий Выполнено за 14 мин. [Показать отчёт] Научился: Сокобан - классная игра и отличный курс. Скрины классических и собственных уровней. Сложности: Все отлично. Нужно только найти время, чтобы заново перепройти курс. |
|||||
9 | Сокобан - Создаём свои уровни |
1 тест |
|||
Твоя задача - подготовить базу уровней для игры Сокобан.
Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Создавать свои уровни Сложности: Создавать и продумывать свои 3 уровня. Остальные 7 утащил. Комментарии: Все отлично |
|||||
10 | Сокобан - Игра - Интерфейс |
1 тест |
|||
Мы начинаем создание интеллектуальной игры СОКОБАН. У нас уже есть все необходимые классы и уровни для создания полноценной игры. На этом уроке мы создадим форму и настроим интерфейс окна лабиринта. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Создавать интерфейс программы, повторил делегаты. Сложности: Сложностей не было. Комментарии: Все отлично. |
|||||
11 | Сокобан - Игра - Управление |
3 теста |
|||
Теперь мы создадим класс логики игры Game, используя который, мы реализуем управление человечком курсорными клавишами клавиатуры. А также сделаем переход на следующий уровень. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 00 мин. [Показать отчёт] Научился: Очень многому.Реализовывать логику игры. Создавать матрицы - для статических и динамических объектов. Создавать обработчики событий для передвижения человека и толкания ящиков с учетом проверки на наличие свободных мест, организацию статистики, переход между уровнями. Сложности: Удержать в голове всю эту структуру. Подготовил форму для окончания игры, но не прописал, нужно еще подумать. Комментарии: Все великолепно, очень понравилось. |
|||||
12 | Сокобан - Решалка - Тестер |
1 тест |
|||
На этом уроке мы напишем программу, которая будет проверять правильность алгоритма поиска решения лабиринта. http://www.videosharp.info/console/task/level=1178 Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Создавать тестер и проверять его работу. Сложности: По отдельности - все понятно. Нужна практика. Комментарии: Все замечательно. |
|||||
13 | Сокобан - Решалка - Мышка |
1 тест |
|||
Мы начинаем решать задачу по решению игры Сокобан с одним ящиком. Эта задача олимпиадного уровня на применение алгоритма поиска вширь. Главный герой - мышка Альфа, которая желает затолкать яблочко к себе в норку. Программу мы напишем за два урока. На первом уроке мы создадим вспомогательную функцию MoveAlfa(), которая подскажет мышке как попасть из одной клетки лабиринта в другую кратчайшим путём. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Знакомство с функцией "поиск вширь", создание алгоритма поиска пути до предметов. Сложности: Все ново и замечательно. Комментарии: Очень понравилось. Полезнейшая функция. |
|||||
14 | Сокобан - Решалка - Яблоко |
2 теста |
|||
На втором уроке мы переделываем написанный алгоритм поиска маршрута мышки. Теперь мы разрешаем мышке толкать яблоко, и записываем все изменения их расположений. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Создавать и усовершенствовать поиск пути для "толкаемого" предмета. Усложнение алгоритма поиска вширь с учетом уже 2 объектов - грузчика и ящика. Сложности: Как и всегда - не потерять какую-нибудь запятую или замену слова void на bool и т.п. Комментарии: Все замечательно, очень интересно |
|||||
15 | Сокобан - Решалка - Оптимизация |
1 тест |
|||
На этом коротком уроке мы рассмотрим два способа оптимизации нашей программы, в результате которых работать она станет просто молниеносно!!!
Отчёт отправил: 4814. Дмитрий Выполнено за 30 мин. [Показать отчёт] Научился: Оптимизировать алгоритм. Сложности: Все понятно. Комментарии: Впечатляюще выросла скорость. Время решения сократилось с 2230 до 6. |
|||||
16 | Сокобан - Игра - Автоходы |
1 тест |
|||
Поздравляю, программа уже создана: можно играть, можно ею хвастаться. На этом уроке мы добавим в игру автоходы, чтобы можно было управлять нашим человечком с помощью мышки - указать, куда идти, и даже указать, какой ящик куда нужно поставить. Для этого нам потребуются два класса по решению лабиринта. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Подключать и редактировать ранее подготовленные классы MouseSilver и AppleSolver и на их основе написать алгоритм автоходов. Сложности: Все понятно. Комментарии: Очень понравилось! Многое возьму отсюда для своей программы. |
|||||
17 | Сокобан - Редактор - На двоих |
1 тест |
|||
Переделываем редактор уровней, чтобы можно было создавать лабиринты для двоих игроков. Создаём базу из 10 новых уровней игры в Сокобан для двоих. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Работать с 2 человечками сразу. Сложности: Все понятно. Комментарии: Классно! |
|||||
18 | Сокобан - Игра - На двоих |
|
|||
Переделать игру, чтобы в неё можно было играть вдвоём на одной клавиатуре.
Отчёт отправил: 4814. Дмитрий Выполнено за 30 мин. [Показать отчёт] Научился: Управлять двумя человечками одновременно. :-) Сложности: Сложностей не возникло. Комментарии: Все отлично. |
|||||
19 | Сокобан - Телефон - TCP/IP протокол |
1 тест |
|||
На этом видеоуроке мы создадим три класса, которые удобно использовать для передачи данных между двумя компьютерами. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 00 мин. [Показать отчёт] Научился: Обмен данными между компьютерами, работа с System.Net; System.Net.Sockets; System.Threading; System.Threading.Tasks; Работа с делегатами. Сложности: Не допустить ошибок при повторении каждого действия. Комментарии: Все отлично. |
|||||
20 | Сокобан - Игра - На двоих по сети |
1 тест |
|||
На этом уроке мы наконец-таки сделаем сетевую версию программы Sokoban для двоих. Мы будем использовать телефонный класс Phone с прошлого урока. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Делать сетевую версию игры. КРУТО! Сложности: Чем дальше, тем меньше проблем. Главное - не потерять какой-нибудь знак или слово. Комментарии: Отлично |
|||||
21 | Сокобан - Завершение |
|
|||
Игра уже написана, но всегда можно сделать чуть-чуть лучше. На этом уроке мы объединим оба варианта игры в одну программу и загрузим файл с уровнями в ресурсы программы. Теперь в одном ехешнике будет сразу всё! Это финиш!!! Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Сводить все воедино. Сложности: Все понятно. Буду практиковаться. Комментарии: СУПЕР!!! |
|||||
22 | ФИНАЛЬНЫЙ урок. Видео-обзор проекта Сокобан |
|
|||
Задание: Записать видеообзор игры СОКОБАН. Отчёт отправил: 4814. Дмитрий Выполнено за 23 дня 18 час. 22 мин. [Показать отчёт] Научился: Продолжаю "закрывать хвосты". Финальный видеообзор замечательной игры "Сокобан", написанной 3 года назад. В игре было реализовано множество очень полезных фишек вроде поиска пути (можно указать клетку, на которую человечек должен прийти, и он самостоятельно добирается (7-я секунда обзора)). Были реализованы режимы игры на 1 и 2 человек, а также отдельно редакторы уровней для них. Отдельно был написан тестер алгоритма поиска пути и проведена его оптимизация. Сложности: Один из самых полезных по насыщенности и самый глобальный на то время курс. Все время хочу его перепройти и разобрать на сниппеты множество фишек (поиск пути, несколько слоев двумерной карты, управление юнитом мышкой, сетевая игра и т.п.), но 14 часов чистого видео - это требует серьезного подхода и затрат времени и усилий. Видеообзор: 0zQk2kSJPTw |
|||||
23 | VIP. Бот для игры БАЛДА |
|
|||
Используя текстовый файл из 27400 слов создаём рекурсивный алгоритм подбора слов для популярной игры Балда. Отчёт отправил: 4814. Дмитрий Выполнено за 1 день 9 час. 35 мин. [Показать отчёт] Научился: Создали бот для игры "Балда", подбирающий подходящие слова из словаря, углубили навыки работы с рекурсивным поиском. Сложности: Была допущена ошибка в булевой функции is_letter, вместо false - true. Пришлось сверять все функции и строки одна за другой и перематывать видео, потратил более часа на поиск ошибки. Все отлично. |
|||||
Итого: 23 видеоурока |
13 час. 51 мин. 20 тестов |
12 чел. | |||
Финалисты: LINKI, Новопашин Владимир, Tekashnik, Алексей В., zhikharevav, Evgenii Kudriavtcev, chokayes, Дмитрий, Максим Лапшинов, no name, Max, MaxB . |