-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
68 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
# Задачи | ||
|
||
Всем задачам мы назначили сложность: | ||
- `A` сложно | ||
- `B` очень сложно | ||
- `C` крайне сложно | ||
|
||
и расписали состав функций, над которыми ожидаем, что вы поработаете. Каждую из функций можем отдельно прорабатывать и уточнять вместе с вами в процессе. | ||
|
||
Мы ожидаем, что вы примените в процессе работы над проектом знания, которые получили в рамках курса и что код будет структурированным: отдельные модули и алгоритмы вынесены в классы/пакеты. | ||
|
||
## Бот `A` | ||
|
||
Задача бота - шагать по карте. Есть пример реализации starter-bot, с которого начинаете разработку. Вам предстоит реализовать и комбинировать следующие функции для принятия решения о ходе. | ||
|
||
- Исследование карты. Бот должен стремиться собрать информацию о карте и посетить участки, которые он еще “не видел”. | ||
|
||
- Обход препятствий. Алгоритм обхода может быть как простым, например, поворачивать в случайном направлении при достижении заблокированной ячейки, так и более сложным (A* или поиск в ширину). | ||
|
||
- Сбор монет. При принятии решения, к какой монете должен идти бот, могут учитываться разные факторы, например, расстояние до нее, наличие рядом с ней других ботов и других монет. | ||
|
||
- (опционально) DEATMATCH: убегать от опасных ботов и охотиться на слабых. | ||
|
||
## Генератор карт `B` | ||
|
||
Генератор на вход принимает параметры карты и формирует на выходе один или несколько файлов карт в описанном формате. Параметры: ширина, высота, количество ботов-участников, количество препятствий на карте: низкое/среднее/высокое. | ||
|
||
- Алгоритм генерации. Необходимо выбрать и реализовать один или несколько алгоритмов задания препятствий. лабиринт, симуляция реального ландшафта, свой вариант. | ||
|
||
- Подбор подходящих параметров view/mining/attack радиусов. Для указанного размера и алгоритма генерации подобрать способ вычисления перечисленных параметров для каждой карты. | ||
|
||
- Автоматический выбор стартовых позиций ботов на карте. | ||
|
||
- (опционально) Симметричность карты. Обеспечить симметричность карт для равенства начальных условий для игроков. | ||
|
||
## Консольный редактор карт `A` | ||
|
||
Редактор на вход принимает путь к файлу карты, выводит ее на экран, позволяет изменять через команды пользователя и сохранять результат. | ||
|
||
- Загрузка и отображение карты. | ||
|
||
- Редактирование: изменение размеров, заблокированных ячеек, начальных позиций ботов. | ||
|
||
- Редактирование параметров карты: view/mining/attack радиусов. | ||
|
||
- (опционально) Вместо консольного реализовать графический редактор на JavaFX (с этим пунктом сложность существенно выше, плюс придется самостоятельно разобраться с JavaFX) | ||
|
||
## Графический визуализатор матчей `C` | ||
|
||
Визуализатор (или плеер) на вход получает путь к файлу лога матча и проигрывает анимацию матча по раундам. | ||
|
||
- Отображение карты, объектов на ней и событий матча (появление/сбор монет, атаки, перемещения ботов). | ||
|
||
- Вывод названий и текущих весов ботов (количества собранных монет). | ||
|
||
- (опционально) Перемотка (слайдер) и возможность поставить анимацию на паузу. | ||
|
||
## Статистика и рейтинг `C` | ||
|
||
Приложение анализирует накопленные логи матчей и формирует отчет с различными статистическими параметрами и рейтингом ботов. | ||
|
||
- Список матчей с названиями ботов участников и результатами. | ||
|
||
- Таблица общего рейтинга ботов. | ||
|
||
- Статистика с метриками по каждому боту: например, средний процент исследования карты, процент побед в атаках, скорость/эффективность сбора монет и т.п. | ||
|
||
- (опционально) Отдельные рейтинг ботов по каждой карте. |