Skip to content

Commit 746898d

Browse files
committed
Add tasks definitions
1 parent d6bfcb9 commit 746898d

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

TASKS.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Задачи
2+
3+
Всем задачам мы назначили сложность:
4+
- `A` сложно
5+
- `B` очень сложно
6+
- `C` крайне сложно
7+
8+
и расписали состав функций, над которыми ожидаем, что вы поработаете. Каждую из функций можем отдельно прорабатывать и уточнять вместе с вами в процессе.
9+
10+
Мы ожидаем, что вы примените в процессе работы над проектом знания, которые получили в рамках курса и что код будет структурированным: отдельные модули и алгоритмы вынесены в классы/пакеты.
11+
12+
## Бот `A`
13+
14+
Задача бота - шагать по карте. Есть пример реализации starter-bot, с которого начинаете разработку. Вам предстоит реализовать и комбинировать следующие функции для принятия решения о ходе.
15+
16+
- Исследование карты. Бот должен стремиться собрать информацию о карте и посетить участки, которые он еще “не видел”.
17+
18+
- Обход препятствий. Алгоритм обхода может быть как простым, например, поворачивать в случайном направлении при достижении заблокированной ячейки, так и более сложным (A* или поиск в ширину).
19+
20+
- Сбор монет. При принятии решения, к какой монете должен идти бот, могут учитываться разные факторы, например, расстояние до нее, наличие рядом с ней других ботов и других монет.
21+
22+
- (опционально) DEATMATCH: убегать от опасных ботов и охотиться на слабых.
23+
24+
## Генератор карт `B`
25+
26+
Генератор на вход принимает параметры карты и формирует на выходе один или несколько файлов карт в описанном формате. Параметры: ширина, высота, количество ботов-участников, количество препятствий на карте: низкое/среднее/высокое.
27+
28+
- Алгоритм генерации. Необходимо выбрать и реализовать один или несколько алгоритмов задания препятствий. лабиринт, симуляция реального ландшафта, свой вариант.
29+
30+
- Подбор подходящих параметров view/mining/attack радиусов. Для указанного размера и алгоритма генерации подобрать способ вычисления перечисленных параметров для каждой карты.
31+
32+
- Автоматический выбор стартовых позиций ботов на карте.
33+
34+
- (опционально) Симметричность карты. Обеспечить симметричность карт для равенства начальных условий для игроков.
35+
36+
## Консольный редактор карт `A`
37+
38+
Редактор на вход принимает путь к файлу карты, выводит ее на экран, позволяет изменять через команды пользователя и сохранять результат.
39+
40+
- Загрузка и отображение карты.
41+
42+
- Редактирование: изменение размеров, заблокированных ячеек, начальных позиций ботов.
43+
44+
- Редактирование параметров карты: view/mining/attack радиусов.
45+
46+
- (опционально) Вместо консольного реализовать графический редактор на JavaFX (с этим пунктом сложность существенно выше, плюс придется самостоятельно разобраться с JavaFX)
47+
48+
## Графический визуализатор матчей `C`
49+
50+
Визуализатор (или плеер) на вход получает путь к файлу лога матча и проигрывает анимацию матча по раундам.
51+
52+
- Отображение карты, объектов на ней и событий матча (появление/сбор монет, атаки, перемещения ботов).
53+
54+
- Вывод названий и текущих весов ботов (количества собранных монет).
55+
56+
- (опционально) Перемотка (слайдер) и возможность поставить анимацию на паузу.
57+
58+
## Статистика и рейтинг `C`
59+
60+
Приложение анализирует накопленные логи матчей и формирует отчет с различными статистическими параметрами и рейтингом ботов.
61+
62+
- Список матчей с названиями ботов участников и результатами.
63+
64+
- Таблица общего рейтинга ботов.
65+
66+
- Статистика с метриками по каждому боту: например, средний процент исследования карты, процент побед в атаках, скорость/эффективность сбора монет и т.п.
67+
68+
- (опционально) Отдельные рейтинг ботов по каждой карте.

0 commit comments

Comments
 (0)