ДВУМЕРНЫЙ ПЛАТФОРМЕР
НАЗНАЧЕНИЕ:
Первоначальное обучение основам искусственного интеллекта на языке C++ с использованием фреймворка Qt.
(фреймворк Qt необходим для для связи написанной обучающимся программы с Двумерным платформером)
Двумерный платформер, как средство обучения позволяет обучаться:
- программированию на языке С++ в среде разработки Qt Creator;
- использованию любых библотек (STL, QtCore, Boost, и т.д.), алгоритмов, приёмов программирования, способствующих созданию ИИ, способного пройти все игровые уровни лучше других (ориентированность на конечный результат, а не на методы решения поставленных задач);
- созданию алгоритмов, анализирующих и прогнозирующих игровые ситуации на несколько ходов вперёд;
- повышению эффективности алгоритмов при помощи:
эффективного использования доступных игровых ресурсов (боеприпасы, энергию);
минимизации количества игровых ходов для достижения игровым персонажем маркера финиша;
- сравнения эффективности своего ИИ с ИИ других обучающихся и с встроенным ИИ на основании результатов прохождения игрового уровня;
- постепенному совершенстованию создаваемого ИИ для обеспечения прохождения им игровых уровней возрастающей сложности, рассчитаных на наличие у созданной программы способностей справляться с новыми игровыми ситуациями;
Двумерный платформер, как средство визуализации задач, решаемых ИИ обладает общей темой оформления и игровым персонажем для всех задач, представленых игровыми уровнями, что обеспечивает единообразие и лаконичность восприятия визуальной составляющей;
СРАВНЕНИЕ ДВУМЕРНОГО ПЛАТФОРМЕРА С ДРУГИМИ ПОПУЛЯРНЫМИ ДВУМЕРНЫМИ ПЛАТФОРМЕРАМИ
(в качестве популярных двумерных платформеров рассматриваются Super Mario, Super Tux, Dangerous Dave in the Haunted Mansion 1991)
- приспособленность игрового персонажа быть управляемым внешней программой через разделяемую память;
- приспособленность Двумерного платформера передавать информацию об окружающей игровой персонаж области игрового уровня программным путём через разделяемую память;
- использование кросс-платформенного фреймворка Qt позволяет использовать Двумерный платформер на различных операционных системах и архитектурах процессоров;
- большая ширина видимой области игрового уровня относительно ширины игрового персонажа — больше простора для анализа и прогнозирования игровой ситуации;
- одноуровневость платформ игрового уровня по вертикали (отсутствие возможности альтернативного пути в выбранном направлении движения по платформам, расположенным выше или ниже той, на которой расположен игровой персонаж) — простота реализации бота;
- возможность свободного перемещения игрового персонажа по игровому уровню (как вправо, так и влево, возврат на уже посещённые игровые поля);
- пошаговость — в отличие от игры в реальном времени, пользователи или бот обладают запасом времени для принятия решения, простота отладки;
- протоколирование игровых ходов с полной информацией об игровом уровне, расположении игрового персонажа и всех противников на игровом уровне;
- отсутствие информации о направлении движения и ориентации противников для бота — бот должен самостоятельно вычислять направления движения противников, для предсказания их расположения на игровом уровне на следующий ход или даже на несколько ходов вперёд;
- возможность игровым персонажем поразить любого противника в области видимости и даже самого себя, при наличии боеприпасов у игрового персонажа, не зависимо от дальности и наличия других противников между игровым персонажем и поражаемым противником;
- допустимость постоянного нахождения в области видимости игрового персонажа 9 — 11 и более противников, тогда как в популярных платформерах количество одновременно видимых противников, как правило, равно 3 — 4 и изредка доходит до 5 — 6;
- наличие предоставляемого пользователю Двумерного платформера исходного кода Qt-проекта с ботом «Вправобот», управляющего игровым персонажем и показывающего простейшие принципы организации и функционирования бота в игровом мире Двумерного платформера;
- наличие встроенного бота «Алгобот», показывающего пример прохождения игровых уровней;
- наличие встроенного бота «Чайник» и режима неподвижных противников для упрощения прохождения игровых уровней в случае, если обучающающийся малоопытен или не имеет опыта в программировании;
- наличие встроенного редактора игровых уровней с возможностью сохранения нескольких созданных самостоятельно игровых уровней в текстовый файл в кодировке UTF-8 и загрузки игровых уровней из этих файлов.
Подробнее смотрите во внутриигровой справке.
СРАВНЕНИЕ РЕСУРСОВ-АНАЛОГОВ В ИНТЕРНЕТ, ОБУЧАЮЩИХ ПРОГРАММИРОВАНИЮ И ИИ С ДВУМЕРНЫМ ПЛАТФОРМЕРОМ
codecombat.com
+ Преимущества codecombat.com перед Двумерным платформером:
- имеет лучшее визуальное оформление (двумерная графика воспринимается более трёхмерной, больше деталей окружающего мира);
- подходит для тех кто не знаком с основами программирования и хочет обучиться основам программирования сам без преподавателя в игровой форме;
- предоставляет медленное, визуальное, поэтапное улучшение познаний основ языков программирования: Python, Javascript, CoffeeScript, Lua;
- большое количество разнообразных заданий связанных между собой общей темой, сюжетной линией, выбираемым главным героем с элементами ролевой игры от третьего лица;
- меню выбора заданий оформленно в виде карты игрового мира с отмеченными местами прохождения заданий;
- наличие звукового оформления.
- Недостатки codecombat.com перед Двумерным платформером:
- не поддерживает C, C++;
- платная подписка ~4$ в месяц;
- не позволяет изучить программирование далее базовых языковых и алгоритмических конструкций и приёмов:
* линейный вычислительный процесс;
* ветвящийся вычислительный процесс (условный оператор);
* циклы;
* массивы (одномерные и двумерные);
* строки;
* функции;
- позволяет создать только простой ИИ, предназначенный для прохождения конкретного игрового уровня, выраженный в написании обработчиков событий, возникающих во время игры или последовательности запрограммированных команд для его прохождения;
- разработчиками не запланированна возможность создать единый ИИ, предназначенный для прохождения всех игровых уровней, владеющий в совершенстве игровым персонажем в пределах всей игры, а не конкретного игрового уровня;
- отсутствует необходимость предсказывать игровую ситуацию на несколько ходов вперёд;
- отсутствует ограничение по количеству атак игровым персонажем противников в пределах игрового уровня.
codingame.com
+ Преимущества codingame.com перед Двумерным платформером:
- широкий набор задач различного уровня;
- задачи затрагивают различные алгоритмы, приёмы программирования, математематические, геометрические, физические формулы и расчёты;
- наличие заданий с красивой, качественной визуализацией;
- возможность командных соревнований в реальном времени.
- Недостатки codingame.com перед Двумерным платформером:
- задачи не связаны между собой общей темой, сюжетной линией, главным героем;
- задачи не всегда визуализирированы графикой;
- многие задачи имеют примитивную двумерную графику.
Для совершенствования навыков учащихся рекомендуется интернет-ресурс
codewars.com
содержащий набор консольных задач различного уровня (как для начинающих, так и для опытных разработчиков) на различных языках программирования.
В СЛУЧАЕ ЗАВИСАНИЯ ИНТЕРФЕЙСА ДВУМЕРНОГО ПЛАТФОРМЕРА (ВСЕ КНОПКИ, КОТОРЫЕ МОГУТ НА ЧТО-ТО ПОВЛИЯТЬ СТАНОВЯТСЯ НЕДОСТУПНЫ)
GNU/LINUX: УБЕЙТЕ ПРОЦЕСС ЧЕРЕЗ СИСТЕМНЫЙ МОНИТОР (ИМЕННО УБИТЬ (KILL), А НЕ ЗАВЕРШИТЬ)
WINDOWS: ЗАВЕРШИТЕ ПРОЦЕСС ЧЕРЕЗ ДИСПЕТЧЕР ЗАДАЧ