# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
4 теста |
|||
Я приглашаю вас на видеокурс по созданию полноценной игровой программы СОКОБАН. Я проведу вас за руку по всем этапам создания законченной интеллектуальной игры: 1. Создание редактора уровней. 2. Придумывание этих самых уровней. 3. Создание собственно игры. 4. Решение олимпиадной задачки для добавления ИИ. 5. Переделка игры в режим "на двоих". 6. Написание класса Phone для связи двух программ по сети. 7. Создание сетевой версии игры Sokoban. Будет интересно! В конце видео - первое задание: Научиться играть! :) Ссылка на игру Сокобан Отчёт отправил: 6627. Иван Выполнено за 1 час. 15 мин. [Показать отчёт] Научился: Вспомнил самую любимую игру студенчества :) Сложности: Девятый уровень сокобана Комментарии: нет |
|||||
2 |
![]() |
1 тест |
|||
На этом уроке мы подготовим 6 пиктограмм и две картинки для игры, а также придумаем свой собственный уровень, который запишем в текстовый файл. Отчёт отправил: 6627. Иван Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Поиск и обрезка/подгонка картинок Сложности: Поиск картинок Комментарии: нет |
|||||
3 | Сокобан - Редактор - Загрузка |
|
|||
Мы начинаем создавать редактор уровней для известной логической игры Sokoban. Редактор будет создан за четыре урока. На первом уроке мы создадим класс для загрузки уровня с текстового файла и протестируем его работу. Отчёт отправил: 6627. Иван Выполнено за 1 час. 10 мин. [Показать отчёт] Научился: Научился очень удобной процедуре парсинга строк. Никогда еще так комфортно не работал с данными из текстового файла .... да и вообще с текстовым файлом. Сложности: С Евгением очень тяжело представить, что в C# есть что - то сложное :) Комментарии: --- |
|||||
4 | Сокобан - Редактор - Интерфейс |
|
|||
На этом уроке мы создадим интерфейс программы и сделаем отображение загруженного уровня на экране. Отчёт отправил: 6627. Иван Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Очень тяжко даются формулы пересчета ширины и высоты. Сложности: Понять как работают формы для расчета ширины и высоты наших картинок. Комментарии: --- |
|||||
5 | Сокобан - Редактор - Редактирование |
|
|||
На третьем уроке мы сделаем наконец-таки редактирование поля. Также реализуем возможность изменения размера лабиринта. В конце напишем функцию для проверки корректности составленного уровня. Отчёт отправил: 6627. Иван Выполнено за 2 час. 30 мин. [Показать отчёт] Научился: Присвоение координат полю Tag компонента PictureBox. И лучше усвоил как правильно создавать универсальные методы, вместо деблирования кода. Сложности: Самое сложное, как всегда, поспевать за мыслями Евгения :) Комментарии: --- |
|||||
6 | Сокобан - Редактор - Сохранение |
|
|||
На четвёртом уроке мы закончим создание редактора уровней. Напишем самую главную функцию для сохранения сделанных изменений в файл. Затем добавим кнопки перехода к следующему и предыдущему уровню. Останется только немного облагородить интерфейс программы. Отчёт отправил: 6627. Иван Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Записывать в файл весь массив одной коммандой. Делать Resize для массива. Сложности: Отслеживание мысли о добавлении и вычитании кол-ва элементов в массиве. Комментарии: Когда Евгений устает, то эта усталость отражается и на нас ... точнее на мне. Этот урок дался тяжко ... вся вторая половина урока прошла с навязчивой мыслью "Ну когда же это все закончится". С прошлыми уроками было наоборот. После окончания урока хотелось начать следующий не делая пауз. |
|||||
7 | Сокобан - Редактор - Улучшение |
|
|||
Допиливаем и дорабатываем редактор до товарного вида. Реализуем ещё несколько фишек. Отчёт отправил: 6627. Иван Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Парсить строку с нужным мне символом. Сложности: Нарисовать картинки и вставить в меню Комментарии: --- |
|||||
8 | Сокобан - Редактор - Классика уровней |
1 тест |
|||
На этом уроке вам нужно выбрать любых два классических уровня и создать их в нашей программе-редакторе. Ссылка на классические уровни: https://logic-games.spb.ru/sokoban/ Редактор можно скачать здесь: https://www.videosharp.info/data/soft/SokobanEditor.zip |
|||||
9 | Сокобан - Создаём свои уровни |
1 тест |
|||
Твоя задача - подготовить базу уровней для игры Сокобан.
Отчёт отправил: 6627. Иван Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Вспомнил какие уровни мне больше всего понравились в сокобане :) Сложности: --- Комментарии: --- |
|||||
10 | Сокобан - Игра - Интерфейс |
1 тест |
|||
Мы начинаем создание интеллектуальной игры СОКОБАН. У нас уже есть все необходимые классы и уровни для создания полноценной игры. На этом уроке мы создадим форму и настроим интерфейс окна лабиринта. Отчёт отправил: 6627. Иван Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Тренировка по созданию делегатов Сложности: --- Комментарии: --- |
|||||
11 | Сокобан - Игра - Управление |
3 теста |
|||
Теперь мы создадим класс логики игры Game, используя который, мы реализуем управление человечком курсорными клавишами клавиатуры. А также сделаем переход на следующий уровень. Отчёт отправил: 6627. Иван Выполнено за 2 час. 30 мин. [Показать отчёт] Научился: Очень нравится использование двух массивов (top и map) для получения результата. Этот метод для меня в видеокурсе "Морской флот" был в новинку, а сейчас я его еще лучше закрепил. Сложности: Пришлось немного включить и свое серое вещество, а не только пользоваться знаниями Евгения, для отображения завершающего окна, о том что все уровни пройдены :) Комментарии: Евгений, сори за отчет. Дети и работа съедают все свободное время .... я очень стараюсь выделять время для программирования, меня оно завораживает .... но иногда делаю налету-набегу, как с этим отчетом... P.s. все хотел спросить.... А почему вы не используете коллекции? .... я все время у Вас массивы вижу. |
|||||
12 | Сокобан - Решалка - Тестер |
1 тест |
|||
На этом уроке мы напишем программу, которая будет проверять правильность алгоритма поиска решения лабиринта. http://www.videosharp.info/console/task/level=1178 Отчёт отправил: 6627. Иван Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Раньше я консоль использовал исключительно для вывода результата. А что в консоли можно даже в сокобан играть, я понятия не имел. С этого момента кругозор у меня стал шире :) Спасибо большое :) Сложности: Самым сложным было понять каким образом двигается мышка за яблоком .... перерисовка творит чудеса :) Комментарии: Было бы классно если бы Вы, Евгений, при создании какой-то ф-ии, точнее метода, хотя бы в двух словах рассказывали что оно будет делать, а то я, иногда, начинаю понимать, что ф-ия делает только после того, как она начинает работать :) Так не всегда, но бывает. ИМХО |
|||||
13 | Сокобан - Решалка - Мышка |
1 тест |
|||
Мы начинаем решать задачу по решению игры Сокобан с одним ящиком. Эта задача олимпиадного уровня на применение алгоритма поиска вширь. Главный герой - мышка Альфа, которая желает затолкать яблочко к себе в норку. Программу мы напишем за два урока. На первом уроке мы создадим вспомогательную функцию MoveAlfa(), которая подскажет мышке как попасть из одной клетки лабиринта в другую кратчайшим путём. Отчёт отправил: 6627. Иван Выполнено за 1 час. 50 мин. [Показать отчёт] Научился: Теперь я знаю алгоритм по нахождении кратчайшего пути. Сложности: проследить линию алгоритма Комментарии: Очень интересно было протестировать результат :) |
|||||
14 | Сокобан - Решалка - Яблоко |
2 теста |
|||
На втором уроке мы переделываем написанный алгоритм поиска маршрута мышки. Теперь мы разрешаем мышке толкать яблоко, и записываем все изменения их расположений. Отчёт отправил: 6627. Иван Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Для меня всегда было проблемой перестроится из функций и процедур в ООП. Сложности: Самым сложным и интересным было тестирование. :) От тестирования, в очередной раз, получил огромное удовольствие :) Комментарии: Спасибо, Вам, Евгений! |
|||||
15 | Сокобан - Решалка - Оптимизация |
1 тест |
|||
На этом коротком уроке мы рассмотрим два способа оптимизации нашей программы, в результате которых работать она станет просто молниеносно!!!
Отчёт отправил: 6627. Иван Выполнено за 20 мин. [Показать отчёт] Научился: Теперь мне думается, что коллекции не так эффективны ..... как хотелось бы. Хитрый получился массив :) Классно придумано :) Сложности: Понять, что наши координаты - это номера индексов у массива :) Изначально думается: "Ну как булевский массив может хранить координаты?" )))) Комментарии: А вообще странно ... поиск по индексам, по идее, должен быть такой же моментальный, как и мы обращаемся к массиву напрямую.... |
|||||
16 | Сокобан - Игра - Автоходы |
1 тест |
|||
Поздравляю, программа уже создана: можно играть, можно ею хвастаться. На этом уроке мы добавим в игру автоходы, чтобы можно было управлять нашим человечком с помощью мышки - указать, куда идти, и даже указать, какой ящик куда нужно поставить. Для этого нам потребуются два класса по решению лабиринта. Отчёт отправил: 6627. Иван Выполнено за 1 час. 50 мин. [Показать отчёт] Научился: Очень интересно было встраивать классы из олимпиадных задач. Сложности: --- Комментарии: В олимпиадных задачах яблоко было ящиком, а в сокобане ящик стал яблоком ))) |
|||||
17 | Сокобан - Редактор - На двоих |
1 тест |
|||
Переделываем редактор уровней, чтобы можно было создавать лабиринты для двоих игроков. Создаём базу из 10 новых уровней игры в Сокобан для двоих. Отчёт отправил: 6627. Иван Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Мне, почему то создавать уровни не так интересно, как играть в уже созданные. Сложности: Создание уровней. Еще немного задумался над тем как мы ранее делали выделение кнопки на toolStrip Комментарии: --- |
|||||
18 | Сокобан - Игра - На двоих |
|
|||
Переделать игру, чтобы в неё можно было играть вдвоём на одной клавиатуре.
Отчёт отправил: 6627. Иван Выполнено за 40 мин. [Показать отчёт] Научился: Дорабатывать наш сокобан для игры вдвоем на одной клавиатуре. Сложности: --- Комментарии: Я немного лохонулся на прошлом уроке. Не создал копию игры на одного ... сделал из игры на одного, игру на двоих. Соответственно игра на одного была утеряна. Пришлось, без Евгения, откатываться ... делать обратную операцию. Из игры на двоих - игру на одного. :) |
|||||
19 | Сокобан - Телефон - TCP/IP протокол |
1 тест |
|||
На этом видеоуроке мы создадим три класса, которые удобно использовать для передачи данных между двумя компьютерами. Отчёт отправил: 6627. Иван Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Соединять два приложения по TCPIP протоколу. Сложности: Для меня самым сложным было разобраться с параллельным потоком. Но есть момент который мне как-то не по себе - дался .... Вот у нас создание нового потока: Thread thread = new Thread(Waiter); А почему мы используем название нашего метода Waiter без скобочек? Вот так: Thread thread = new Thread(Waiter ( ) ); Как то не логично получается ... будто мы потоку переменную передаем .... Комментарии: Для меня этот урок был мего позновательным. Спасибо Евгению. Я давно хотел познакомиться с сеткой в C# ... даже как-то маловато показалось :) Много тестировал. Как появится шанс протестировать на двух машинах, обязательно это сделаю ! |
|||||
20 | Сокобан - Игра - На двоих по сети |
1 тест |
|||
На этом уроке мы наконец-таки сделаем сетевую версию программы Sokoban для двоих. Мы будем использовать телефонный класс Phone с прошлого урока. Отчёт отправил: 6627. Иван Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Потренировался в делегатах. Сложности: Двух компов нет. Протестировать в ближайшее время нет возможности :( P.s. при первом же случае протестирую и переделаю отчет. Комментарии: Пока тестировал еще баг нашел. :) Я полон энтузиазма допилить все наши сетевые баги. |
|||||
21 | Сокобан - Завершение |
|
|||
Игра уже написана, но всегда можно сделать чуть-чуть лучше. На этом уроке мы объединим оба варианта игры в одну программу и загрузим файл с уровнями в ресурсы программы. Теперь в одном ехешнике будет сразу всё! Это финиш!!! Отчёт отправил: 6627. Иван Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Компоновать игру из маленьких кусочков. Сложности: --- Комментарии: Огромное Вам, Евгений, спасибо за данную игру ... я научился тут работать с пикчебоксиками, познакомился с перерисовкой для ресайза, был очень познавательный алгоритм для перемещения ящиков, работа с TCPIP (это мне еще нужно будет проверить ... по сети), узнал о удобной записи и чтении из текстового файла.... Да и всего не перечислить. Было очень интеремно. Спасибо вам за это. P.s. Евгений, теперь очень хочется поработать с базами данных и попарсить XML файлы. Посоветуете курс? |
|||||
22 | ФИНАЛЬНЫЙ урок. Видео-обзор проекта Сокобан |
|
|||
Задание: Записать видеообзор игры СОКОБАН. Отчёт отправил: 6627. Иван Выполнено за 50 мин. [Показать отчёт] Научился: Записывать обзоры :) Сложности: настроить программу по записи видео Комментарии: Спасибо большое Вам, Евгений, за Ваш вклад в этот проэкт. P.s. программ написанных мной очень мало и прикладывать - то нечего. Я только лишь начинающий программист.... Видеообзор: http://www.youtube.com/watch?v=Z4WjyK2SEFU |
|||||
23 | VIP. Бот для игры БАЛДА |
|
|||
Используя текстовый файл из 27400 слов создаём рекурсивный алгоритм подбора слов для популярной игры Балда. |
|||||
Итого: 23 видеоурока |
13 час. 51 мин. 20 тестов |
12 чел. | |||
Финалисты: LINKI, Новопашин Владимир, Tekashnik, Алексей В., zhikharevav, Evgenii Kudriavtcev, chokayes, Дмитрий, Максим Лапшинов, no name, Max, MaxB . |