# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
4 теста |
|||
Я приглашаю вас на видеокурс по созданию полноценной игровой программы СОКОБАН. Я проведу вас за руку по всем этапам создания законченной интеллектуальной игры: 1. Создание редактора уровней. 2. Придумывание этих самых уровней. 3. Создание собственно игры. 4. Решение олимпиадной задачки для добавления ИИ. 5. Переделка игры в режим "на двоих". 6. Написание класса Phone для связи двух программ по сети. 7. Создание сетевой версии игры Sokoban. Будет интересно! В конце видео - первое задание: Научиться играть! :) Ссылка на игру Сокобан Отчёт отправил: 2146. Иван Выполнено за 4 час. 00 мин. [Показать отчёт] Научился: :) Сложности: Успеть сфоткать, пока телефон не разрядился. Комментарии: Давно уже в телефон загружена. |
|||||
2 |
![]() |
1 тест |
|||
На этом уроке мы подготовим 6 пиктограмм и две картинки для игры, а также придумаем свой собственный уровень, который запишем в текстовый файл. Отчёт отправил: 2146. Иван Выполнено за 40 мин. [Показать отчёт] Научился: Готовимся Сложности: Придумать тематику Комментарии: Ура! Начинаю очень интересный курс! |
|||||
3 | Сокобан - Редактор - Загрузка |
|
|||
Мы начинаем создавать редактор уровней для известной логической игры Sokoban. Редактор будет создан за четыре урока. На первом уроке мы создадим класс для загрузки уровня с текстового файла и протестируем его работу. Отчёт отправил: 2146. Иван Выполнено за 50 мин. [Показать отчёт] Научился: Закрепил модификатор out очень удобная штука. Сложности: Вылавливать ошибки, как всегда не быстро. Комментарии: Все получается! Жду визуализацию. |
|||||
4 | Сокобан - Редактор - Интерфейс |
|
|||
На этом уроке мы создадим интерфейс программы и сделаем отображение загруженного уровня на экране. Отчёт отправил: 2146. Иван Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Вычислять место положение боксиков. Еще раз прошел динамическое размещение компонентов. Сложности: С видео все просто. И ошибки быстро находятся Комментарии: Наконец, добрался до компьютера, где стоит студия. Спасибо за урок. Уже вывели картинки - результат стал виден! Вдохновляет! |
|||||
5 | Сокобан - Редактор - Редактирование |
|
|||
На третьем уроке мы сделаем наконец-таки редактирование поля. Также реализуем возможность изменения размера лабиринта. В конце напишем функцию для проверки корректности составленного уровня. Отчёт отправил: 2146. Иван Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Использовать двойное приведение типов. Очень понравилась запись toolWall.Checked = current_cell == Cell.wall; позволяющая обойтись без switch. Сложности: Что увлекательно, то несложно. Комментарии: Урок очень понравился! Приведение приведения вообще восхитило! Функция ResizeLevel тоже с изюминкой. Спасибо за бесценный урок! |
|||||
6 | Сокобан - Редактор - Сохранение |
|
|||
На четвёртом уроке мы закончим создание редактора уровней. Напишем самую главную функцию для сохранения сделанных изменений в файл. Затем добавим кнопки перехода к следующему и предыдущему уровню. Останется только немного облагородить интерфейс программы. Отчёт отправил: 2146. Иван Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Хороший пример использования ref. Сложности: Функция Сохранение файла Комментарии: Понравилось , как происходит сохранение файла. Редактор получается непростой. Осталось не понятно int w = cell.GetLength(0); int h = cell.GetLength(1); Что значит 0, а что значит 1 в скобках? А может просто надо утром посмотреть видео. |
|||||
7 | Сокобан - Редактор - Улучшение |
|
|||
Допиливаем и дорабатываем редактор до товарного вида. Реализуем ещё несколько фишек. Отчёт отправил: 2146. Иван Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Понравилось использование Math.Min и Math.Max Сложности: Сложно не было. Комментарии: Получился отличный редактор! |
|||||
8 | Сокобан - Редактор - Классика уровней |
1 тест |
|||
На этом уроке вам нужно выбрать любых два классических уровня и создать их в нашей программе-редакторе. Ссылка на классические уровни: https://logic-games.spb.ru/sokoban/ Редактор можно скачать здесь: https://www.videosharp.info/data/soft/SokobanEditor.zip |
|||||
9 | Сокобан - Создаём свои уровни |
1 тест |
|||
Твоя задача - подготовить базу уровней для игры Сокобан.
Отчёт отправил: 2146. Иван Выполнено за 40 мин. [Показать отчёт] Научился: Собирать все вместе. Сложности: Все отлично. Комментарии: Продвигаемся вперед! |
|||||
10 | Сокобан - Игра - Интерфейс |
1 тест |
|||
Мы начинаем создание интеллектуальной игры СОКОБАН. У нас уже есть все необходимые классы и уровни для создания полноценной игры. На этом уроке мы создадим форму и настроим интерфейс окна лабиринта. Отчёт отправил: 2146. Иван Выполнено за 1 час. 15 мин. [Показать отчёт] Научился: Повторил вызов формы, загрузку из файла. Сложности: Сложного ничего не было. Комментарии: Не удержался, и попробовал вывести уровень из файла, пока без возможности загрузки других уровней. |
|||||
11 | Сокобан - Игра - Управление |
3 теста |
|||
Теперь мы создадим класс логики игры Game, используя который, мы реализуем управление человечком курсорными клавишами клавиатуры. А также сделаем переход на следующий уровень. Отчёт отправил: 2146. Иван Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Очень понравилась идея двухслойности! (map и top) Сложности: Наверное , самая сложная функция - step Комментарии: Здорово получилось! Белка ходит, ящики передвигает! Спасибо за замечательный урок! Если бы делал сам, то вряд ли до такой реализации додумался. |
|||||
12 | Сокобан - Решалка - Тестер |
1 тест |
|||
На этом уроке мы напишем программу, которая будет проверять правильность алгоритма поиска решения лабиринта. http://www.videosharp.info/console/task/level=1178 Отчёт отправил: 2146. Иван Выполнено за 1 час. 10 мин. [Показать отчёт] Научился: осознал разницу File.ReadAllText и File.ReadAllLines. Сложности: Сложно было не запутаться с ax,ay,bx,by,ex,ey,px,py Комментарии: Спасибо за урок. Алгоритм показался не очень сложным. Хотя, когда пришел на этот поект, это было бы сложно. |
|||||
13 | Сокобан - Решалка - Мышка |
1 тест |
|||
Мы начинаем решать задачу по решению игры Сокобан с одним ящиком. Эта задача олимпиадного уровня на применение алгоритма поиска вширь. Главный герой - мышка Альфа, которая желает затолкать яблочко к себе в норку. Программу мы напишем за два урока. На первом уроке мы создадим вспомогательную функцию MoveAlfa(), которая подскажет мышке как попасть из одной клетки лабиринта в другую кратчайшим путём. Отчёт отправил: 2146. Иван Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: очень понравилось использовать List и Queue! Сложности: C таким уроком все просто. Комментарии: Отличный урок! Чем дальше , тем интереснее. Добавил в тестер вывод самого пути, как шла мышка. |
|||||
14 | Сокобан - Решалка - Яблоко |
2 теста |
|||
На втором уроке мы переделываем написанный алгоритм поиска маршрута мышки. Теперь мы разрешаем мышке толкать яблоко, и записываем все изменения их расположений. Отчёт отправил: 2146. Иван Выполнено за 1 час. 40 мин. [Показать отчёт] Научился: Очень насыщенный урок. Научился волновому поиску пути да еще и с тяжелым ящиком!!! Сложности: Под диктовку, с паузами делать одно удовольствие! Комментарии: Очень красивое решение получилось. Надо бы его еще не один раз пересмотреть, чтобы проникнуться идеей. Не просто 10 звезд, а 20!!! |
|||||
15 | Сокобан - Решалка - Оптимизация |
1 тест |
|||
На этом коротком уроке мы рассмотрим два способа оптимизации нашей программы, в результате которых работать она станет просто молниеносно!!!
Отчёт отправил: 2146. Иван Выполнено за 30 мин. [Показать отчёт] Научился: Практика использования stopwatch. Практика использования четырехмерных массивов. Практика использования Dictionary Сложности: Не сложно , но позновательно! Комментарии: Спасибо! Очень понравились оптимизации. Особенно ценно, что не сразу был дан вариант с квадромассивом, а до этот показали и Dictionary. На маленьком лабиринте цифры не так впечатляют, но огромный лабиринт пока не удалось нарисовать. |
|||||
16 | Сокобан - Игра - Автоходы |
1 тест |
|||
Поздравляю, программа уже создана: можно играть, можно ею хвастаться. На этом уроке мы добавим в игру автоходы, чтобы можно было управлять нашим человечком с помощью мышки - указать, куда идти, и даже указать, какой ящик куда нужно поставить. Для этого нам потребуются два класса по решению лабиринта. Отчёт отправил: 2146. Иван Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: Потренировался подключать классы. Сложности: Разобраться, что надо сначала спрятать ящик, а потом показать ( top[start.x, start.y] = Cell.abox;) Комментарии: Удивительный результат! Все работает. Спасибо за подробные объяснения - все было понятно! Играть с такими дополнениями одно удовольствие, только успевая мышкой щелкать! |
|||||
17 | Сокобан - Редактор - На двоих |
1 тест |
|||
Переделываем редактор уровней, чтобы можно было создавать лабиринты для двоих игроков. Создаём базу из 10 новых уровней игры в Сокобан для двоих. Отчёт отправил: 2146. Иван Выполнено за 40 мин. [Показать отчёт] Научился: Все исправил, все заработало Сложности: Придумать второго персонажа Комментарии: Интересные дополнения. |
|||||
18 | Сокобан - Игра - На двоих |
|
|||
Переделать игру, чтобы в неё можно было играть вдвоём на одной клавиатуре.
Отчёт отправил: 2146. Иван Выполнено за 30 мин. [Показать отчёт] Научился: Добавлять второго игрока Сложности: Оказалось, что переделывать игру на двоих проще, чем я думал. Комментарии: Здорово получается. Белке повезло, за нее можно играть мышью. |
|||||
19 | Сокобан - Телефон - TCP/IP протокол |
1 тест |
|||
На этом видеоуроке мы создадим три класса, которые удобно использовать для передачи данных между двумя компьютерами. Отчёт отправил: 2146. Иван Выполнено за 30 мин. [Показать отчёт] Научился: Еще раз повторил использование делегатов. Использование abstract и override Сложности: Использование abstract и override Комментарии: Этот урок делал в другом проекте, как vip урок. Очень хорошо, что он тут тоже есть. |
|||||
20 | Сокобан - Игра - На двоих по сети |
1 тест |
|||
На этом уроке мы наконец-таки сделаем сетевую версию программы Sokoban для двоих. Мы будем использовать телефонный класс Phone с прошлого урока. Отчёт отправил: 2146. Иван Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Очень интересно исследовать, как работают классы между собой. Сложности: Так писать программу - совсем просто. Но так все соединить вместе - очень сложно. Интересно придумано с синхронной сменой уровней! Комментарии: Ух! Вот это урок! Столько всего важного и интересного. Удивительно, что класс phone передает всего то по одному байтику. А наши человечки бегают уже вместе! Спасибо за замечательный курс. Все очень понравилось! |
|||||
21 | Сокобан - Завершение |
|
|||
Игра уже написана, но всегда можно сделать чуть-чуть лучше. На этом уроке мы объединим оба варианта игры в одну программу и загрузим файл с уровнями в ресурсы программы. Теперь в одном ехешнике будет сразу всё! Это финиш!!! Отчёт отправил: 2146. Иван Выполнено за 2 час. 30 мин. [Показать отчёт] Научился: Повторил пройденное. Потренировался с делегатами. Сложности: Попытка сделать чат не увенчалась успехом Комментарии: Спасибо за подробные уроки! Хорошая практика с делегатом, с абстрактным классом, и еще со многими другими вещами. И хорошо, что этот курс я взял в конце, а то многое бы просто не понял. Отличная игра получилась! |
|||||
22 | ФИНАЛЬНЫЙ урок. Видео-обзор проекта Сокобан |
|
|||
Задание: Записать видеообзор игры СОКОБАН. Отчёт отправил: 2146. Иван Выполнено за 40 мин. [Показать отчёт] Научился: Доводить курс до конца. Сложности: записывать ночью Комментарии: Замечательный курс. Тут и создание классов, и их взаимодействие - очень было полезно все это сделать. Видеообзор: https://youtu.be/Q0CazQPvgNg |
|||||
23 | VIP. Бот для игры БАЛДА |
|
|||
Используя текстовый файл из 27400 слов создаём рекурсивный алгоритм подбора слов для популярной игры Балда. |
|||||
Итого: 23 видеоурока |
13 час. 51 мин. 20 тестов |
12 чел. | |||
Финалисты: LINKI, Новопашин Владимир, Tekashnik, Алексей В., zhikharevav, Evgenii Kudriavtcev, chokayes, Дмитрий, Максим Лапшинов, no name, Max, MaxB . |