# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
4 теста |
|||
Я приглашаю вас на видеокурс по созданию полноценной игровой программы СОКОБАН. Я проведу вас за руку по всем этапам создания законченной интеллектуальной игры: 1. Создание редактора уровней. 2. Придумывание этих самых уровней. 3. Создание собственно игры. 4. Решение олимпиадной задачки для добавления ИИ. 5. Переделка игры в режим "на двоих". 6. Написание класса Phone для связи двух программ по сети. 7. Создание сетевой версии игры Sokoban. Будет интересно! В конце видео - первое задание: Научиться играть! :) Ссылка на игру Сокобан Отчёт отправил: 7119. Новопашин Владимир Выполнено за 1 час. 01 мин. [Показать отчёт] Научился: Пока ничему, но прикольное начало. Сложности: Некоторые уровни приходилось по несколько раз - вот это было самым сложным. Все из-за того , что ящичек двигать нельзя. Комментарии: Вперед к новым высотам. |
|||||
2 |
![]() |
1 тест |
|||
На этом уроке мы подготовим 6 пиктограмм и две картинки для игры, а также придумаем свой собственный уровень, который запишем в текстовый файл. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 4 час. 50 мин. [Показать отчёт] Научился: Да особо ничему новому. Сложности: Подобрать картинки из инета - чаще всего попадались либо не совсем те, либо совсем к теме не имеющие отношения. Комментарии: Ура! Картинки нашел. |
|||||
3 | Сокобан - Редактор - Загрузка |
|
|||
Мы начинаем создавать редактор уровней для известной логической игры Sokoban. Редактор будет создан за четыре урока. На первом уроке мы создадим класс для загрузки уровня с текстового файла и протестируем его работу. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 2 час. 22 мин. [Показать отчёт] Научился: Еще раз повторил для себя TryParse. Сложности: На этот раз ничего. Комментарии: Вот в этом месте, даже не знаю что писать. Пока получили промежуточный результат. Вообщем сделаем так я буду всякий раз какую-либо пословицу писать на русских и других языках - "Лиха беда начало". |
|||||
4 | Сокобан - Редактор - Интерфейс |
|
|||
На этом уроке мы создадим интерфейс программы и сделаем отображение загруженного уровня на экране. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 2 час. 17 мин. [Показать отчёт] Научился: Научился грамотно ресайзить элементики формы. Сложности: У меня в какой-то момент форма не ресайзила - потом я увидел, что не убрал строчку инициализации массива box. Комментарии: Уличная магия работает. |
|||||
5 | Сокобан - Редактор - Редактирование |
|
|||
На третьем уроке мы сделаем наконец-таки редактирование поля. Также реализуем возможность изменения размера лабиринта. В конце напишем функцию для проверки корректности составленного уровня. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 1 час. 43 мин. [Показать отчёт] Научился: Научился добавлять и удалять строчки сокобана в редакторе и корректно отображать. Сложности: Ничего. Комментарии: Супер - игра оживает. |
|||||
6 | Сокобан - Редактор - Сохранение |
|
|||
На четвёртом уроке мы закончим создание редактора уровней. Напишем самую главную функцию для сохранения сделанных изменений в файл. Затем добавим кнопки перехода к следующему и предыдущему уровню. Останется только немного облагородить интерфейс программы. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 2 час. 21 мин. [Показать отчёт] Научился: Научился сохранять уровни в Сокобане. Сложности: Использование магических чисел не приводит к добру - у меня выскакивал глюк - не мог понять. Потом нашел - когда я создавал новый уровень я делал так - New String(' ', 5) - заменил 5 на SokobanEditor.MinWidth - все заработало. Комментарии: С моей точки зрения пока не заполнишь чем-то созданный уровень, не имеет смысла создавать еще один - так что это не баг, а фича. |
|||||
7 | Сокобан - Редактор - Улучшение |
|
|||
Допиливаем и дорабатываем редактор до товарного вида. Реализуем ещё несколько фишек. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 1 час. 12 мин. [Показать отчёт] Научился: Научился в редакторе заполнять области однотипными элементами. Сложности: Такого не было. Комментарии: Я сделал небольшое улучшение. Функцию SaveLevel сделал булевой, чтобы при переходе next и prev , когда выдавалась ошибка не было возможности перейти не исправив все ошибки (например - не установлен игрок, количество ящиков и мест доставки ящиков не совпадает и так далее - все ошибки, которые мы написали в формальном контроле). |
|||||
8 | Сокобан - Редактор - Классика уровней |
1 тест |
|||
На этом уроке вам нужно выбрать любых два классических уровня и создать их в нашей программе-редакторе. Ссылка на классические уровни: https://logic-games.spb.ru/sokoban/ Редактор можно скачать здесь: https://www.videosharp.info/data/soft/SokobanEditor.zip Отчёт отправил: 7119. Новопашин Владимир Выполнено за 21 мин. [Показать отчёт] Научился: Ничему. Сложности: Ничего. |
|||||
9 | Сокобан - Создаём свои уровни |
1 тест |
|||
Твоя задача - подготовить базу уровней для игры Сокобан.
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 1 час. 39 мин. [Показать отчёт] Научился: Научился рисовать новые уровни. Сложности: Ничего. Комментарии: Ура! Скоро начинаем играть! |
|||||
10 | Сокобан - Игра - Интерфейс |
1 тест |
|||
Мы начинаем создание интеллектуальной игры СОКОБАН. У нас уже есть все необходимые классы и уровни для создания полноценной игры. На этом уроке мы создадим форму и настроим интерфейс окна лабиринта. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 3 час. 31 мин. [Показать отчёт] Научился: В сущности была подготовка к игре - пока ничему. Сложности: Ничего. Комментарии: Еще на один шаг продвинулся. |
|||||
11 | Сокобан - Игра - Управление |
3 теста |
|||
Теперь мы создадим класс логики игры Game, используя который, мы реализуем управление человечком курсорными клавишами клавиатуры. А также сделаем переход на следующий уровень. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 3 час. 50 мин. [Показать отчёт] Научился: Познал логику перемещения человечка. Сложности: Да все косяки были по не внимательности. Комментарии: Вообще супер уже можно сказать получилась живая игра - прикрутить звуки и будет супер - самая черная работа уже сделана. |
|||||
12 | Сокобан - Решалка - Тестер |
1 тест |
|||
На этом уроке мы напишем программу, которая будет проверять правильность алгоритма поиска решения лабиринта. http://www.videosharp.info/console/task/level=1178 Отчёт отправил: 7119. Новопашин Владимир Выполнено за 1 час. 46 мин. [Показать отчёт] Научился: Научился писать тестер для сокобана. Сложности: Да решил по своему код сделать из-за этого мышка не правильно ходила - потом исправил и все заработало. Комментарии: У меня сразу несколько мыслей. Мысль первая - у нас может быть несколько яблок и норок - уже такое решение не годится. Мысль вторая - мы почему-то жестко привязаны к solution.txt, хотя по идее хотелось бы чтобы мыша сама находила путь решения, но тут видимо другая история страна, а так в целом есть ощущение, что прикоснулся к чему-то великому. |
|||||
13 | Сокобан - Решалка - Мышка |
1 тест |
|||
Мы начинаем решать задачу по решению игры Сокобан с одним ящиком. Эта задача олимпиадного уровня на применение алгоритма поиска вширь. Главный герой - мышка Альфа, которая желает затолкать яблочко к себе в норку. Программу мы напишем за два урока. На первом уроке мы создадим вспомогательную функцию MoveAlfa(), которая подскажет мышке как попасть из одной клетки лабиринта в другую кратчайшим путём. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 2 час. 14 мин. [Показать отчёт] Научился: Научился создавать путь для файла solution.txt Сложности: Ничего. Комментарии: Я так понимаю решалка для сокобана в следующих уроках. |
|||||
14 | Сокобан - Решалка - Яблоко |
2 теста |
|||
На втором уроке мы переделываем написанный алгоритм поиска маршрута мышки. Теперь мы разрешаем мышке толкать яблоко, и записываем все изменения их расположений. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 2 час. 36 мин. [Показать отчёт] Научился: Научился реализовывать алгоритм решения сокобана для 1 ящика. Сложности: Я не соблюдал порядок вызова направлений, из-за этого у меня решение не получалось, потом исправил и все заработало. Комментарии: Двигаемся дальше. |
|||||
15 | Сокобан - Решалка - Оптимизация |
1 тест |
|||
На этом коротком уроке мы рассмотрим два способа оптимизации нашей программы, в результате которых работать она станет просто молниеносно!!!
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 24 мин. [Показать отчёт] Научился: Научился тому, что не надо безо всякой надобности юзать всякие List и Dictonary , когда может справиться массив. Сложности: Ничего Комментарии: Здорово - теперь все быстрее работает. |
|||||
16 | Сокобан - Игра - Автоходы |
1 тест |
|||
Поздравляю, программа уже создана: можно играть, можно ею хвастаться. На этом уроке мы добавим в игру автоходы, чтобы можно было управлять нашим человечком с помощью мышки - указать, куда идти, и даже указать, какой ящик куда нужно поставить. Для этого нам потребуются два класса по решению лабиринта. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 2 час. 26 мин. [Показать отчёт] Научился: "Привинтил" автоходы с мышки альфы на сокобан. Сложности: Нужно было правильно обыграть в классе AppleSolver взаимодействие с массивом top - из-за этого у меня поначалу ящик не двигался. Комментарии: Вообще потрясающе - игра сокобан вышла на новый уровень. Кстати на сложных уровнях никто думать головой не отменял - я уже проверил. |
|||||
17 | Сокобан - Редактор - На двоих |
1 тест |
|||
Переделываем редактор уровней, чтобы можно было создавать лабиринты для двоих игроков. Создаём базу из 10 новых уровней игры в Сокобан для двоих. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 2 час. 09 мин. [Показать отчёт] Научился: Научился создавать уровни на двух человек Сложности: У меня были проблемы при сохранении следующего уровня - неправильно переносились элементы - если создаем лабиринт большего размера - пофиксил. Комментарии: На двоих в сокобанчег я еще не играл. |
|||||
18 | Сокобан - Игра - На двоих |
|
|||
Переделать игру, чтобы в неё можно было играть вдвоём на одной клавиатуре.
Отчёт отправил: 7119. Новопашин Владимир Выполнено за 1 час. 49 мин. [Показать отчёт] Научился: Научился переделывать игру под 2 игрока. Сложности: Тут ничего. Комментарии: Кстати редактор уровней для одного игрока тоже самодостаточный- зря его распанахивал. Нужно подумать о рефакторинге кода для одного и двух игроков с дальнейшей выбором опций меню - я после прохождения этого курса над этим подумаю. |
|||||
19 | Сокобан - Телефон - TCP/IP протокол |
1 тест |
|||
На этом видеоуроке мы создадим три класса, которые удобно использовать для передачи данных между двумя компьютерами. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 2 час. 24 мин. [Показать отчёт] Научился: Я уже этот урок проходил в новых технологиях - повторение -мать учения. Сложности: Ничего. Комментарии: --- |
|||||
20 | Сокобан - Игра - На двоих по сети |
1 тест |
|||
На этом уроке мы наконец-таки сделаем сетевую версию программы Sokoban для двоих. Мы будем использовать телефонный класс Phone с прошлого урока. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 3 час. 04 мин. [Показать отчёт] Научился: Научил сокобан играть по сети на двоих. Сложности: У меня были сложности с прорисовкой при переходе на следующей уровень и переводе формы товарища на следующий уровень. Комментарии: Вообще-то можно отслеживать закрытие формы - на другом компьютере тоже закрывать - таким образом добьемся синхронности - кстати и по открытию формы , можно аналогично поступать - не надо вступать на скользкий путь синхронизации - достаточно команды посылать из одной формы в другую и будет счастье. |
|||||
21 | Сокобан - Завершение |
|
|||
Игра уже написана, но всегда можно сделать чуть-чуть лучше. На этом уроке мы объединим оба варианта игры в одну программу и загрузим файл с уровнями в ресурсы программы. Теперь в одном ехешнике будет сразу всё! Это финиш!!! Отчёт отправил: 7119. Новопашин Владимир Выполнено за 3 час. 09 мин. [Показать отчёт] Научился: Собрали все хорошее по сокобанчегу, что сделали в этом курсе. Я одно время думал - а как же мышка Альфа - разве мы можем потерять столь ценную разработку нет - не потеряли. Сложности: Да казалось сама игра сложная, но когда преодолеваешь отдельный этап - ничего сложного. Комментарии: Кстати надо будет подумать насчет редактора - убрать проверку на второго игрока на уровне - он может быть, а может и не быть. В этом случае можно считать проект завершенным. А так конечно - проделана колоссальная работа. Я представляю сколько Волосатову стоило бессонных ночей и потуг. |
|||||
22 | ФИНАЛЬНЫЙ урок. Видео-обзор проекта Сокобан |
|
|||
Задание: Записать видеообзор игры СОКОБАН. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 24 час. 00 мин. [Показать отчёт] Научился: В процессе создания отзыва добавил в игру и редактор много полезных фич - подробности в видео. Сложности: Звук постоянно лагает - раздражает. Комментарии: Жду лайков на отзыв. Видеообзор: https://www.youtube.com/watch?v=BMtT71NyphA |
|||||
23 | VIP. Бот для игры БАЛДА |
|
|||
Используя текстовый файл из 27400 слов создаём рекурсивный алгоритм подбора слов для популярной игры Балда. Отчёт отправил: 7119. Новопашин Владимир Выполнено за 5 час. 00 мин. [Показать отчёт] Научился: Научился создавать бот для игры "Балда". Сложности: Ошибся немного и не выдавался список слов. Комментарии: Обалденный урок. Магистр с барского плеча этот урок прикрепил, такое оружие против балдоведов. |
|||||
Итого: 23 видеоурока |
13 час. 51 мин. 20 тестов |
12 чел. | |||
Финалисты: LINKI, Новопашин Владимир, Tekashnik, Алексей В., zhikharevav, Evgenii Kudriavtcev, chokayes, Дмитрий, Максим Лапшинов, no name, Max, MaxB . |