Астероиды¶
Описание¶
В данном задании предлагается реализовать клон популярной игры «Asteroids».
Цель оригинальной игры состоит в том, чтобы получить как можно больше очков, расстреливая астероиды и летающие тарелки, и избегая при этом столкновения с обломками. Игрок управляет космическим кораблём в форме стрелки, которая может крутиться влево и вправо, а также двигаться и стрелять, но только вперёд. При движении импульс не сохраняется: если не включать двигатель, то корабль постепенно остановится. Игрок также может использовать гиперпространственный двигатель — это приводит к тому, что корабль исчезает и затем появляется в случайном месте экрана, с риском уничтожения из-за появления на месте астероида.
Минимальные требования (базовая часть)¶
Базовая реализация проекта, в которой должны разбираться все участники, должна:
- предоставлять возможность играть игру «Астероиды» (т.е. управлять кораблём, стрелять и уничтожать астероиды);
- определять момент поражения.
Расширенный интерфейс (дополнительная часть)¶
Расширенный интерфейс должен добавлять хотя бы 2 различные возможности к базовому интерфейсу. Ниже перечислены возможные варианты расширения интерфейса, однако этим списком они не ограничены:
- меню:
- просмотр таблицы рекордов;
- интерфейс сохранения/загрузки игр;
- выбор режимов игры:
- однопользовательская/многопользовательская;
- уровни сложности;
- расширения игры:
- бонусы и специальные объекты, которые может подбирать корабль;
- другие космические объекты (звёзды, чёрные дыры, НЛО и пр.);
- щиты и маскировка;
- другие типы орудий;
- трехмерная реализация игры;
- и т.д.
Искусственный интеллект (дополнительная часть)¶
Алгоритм поведения, никак не оценивающий ситуацию (например, случайное движение), не считается за реализацию искусственного интеллекта.
Искусственный интеллект в игре «Астероиды» управляет полётом НЛО или противника-компьютера (при многопользовательской игре). Реализация искусственного интеллекта должна предоставлять настройки сложности, чтобы сложность поведения НЛО увеличивалась с очередным появлением или повышением уровня.
Клиент-серверная архитектура (дополнительная часть)¶
Помимо возможности просто играть в игру «Астероиды» по сети (см. Минимальные требования), клиент-серверная архитектура должна предоставлять хотя бы 2 дополнительные возможности:
- поддержка нескольких игровых сессий одновременно;
- запуск ИИ на серверной стороне;
- регистрация, аутентификация и авторизация (вход в систему и права на доступ);
- доступ к таблице рекордов;
- сохранение/загрузка игр;
- и т.д.
Работа с базой данных (дополнительная часть)¶
Модуль для работы с базой данных должен предоставлять хотя бы 2 различных возможности:
- таблица рекордов;
- сохранения игровых сессий;
- база пользователей;
- и т.д.