Арена
Как это работает?
TL;DR
- Журналы боев с арен сохраняются в базу данных
- Один раз в день бот может переобучать предсказывать победу в бою на основе этих журналов
- Чем больше журналов сохранено, тем лучше составляются команды на арене
- Поначалу все будет плохо
- Через месяц-другой будет круто – даже лучше, чем вручную
- Может быть, я встрою в бота готовую модель
Подробнее
Несколько раз в день бот сохраняет к себе в базу данных журналы арен. Это не очень много, несколько десятков боев в день. Сохраняются доступные признаки героев типа цвета, уровня и звездности и так далее. Сохраняется и результат боя. Раз в сутки бот перестраивает модель машинного обучения для предсказания исхода боя, если известны обе команды.
Когда бот идет на арену, то для каждого противника он пытается подобрать лучшую команду для атаки. Полный перебор сделать невозможно, поэтому используется генетический алгоритм.
Бот перебирает противников, пока не найдет наилучшего – с максимальной вероятностью победы. Если вероятность победы для выбранного противника менее 50%, то атака отменяется и откладывается на попозже. Атака на позиции выше 100-ой на гранд-арене пока не реализована. Но уже сейчас бот сохраняет увиденные команды противников, чтобы в будущем оценивать скрытые команды.
Настройка
schedule_offset
Это костыль, который позволяет указать сдвиг во времени относительно расписания арены по умолчанию. Может быть полезно для слабого железа, на котором выполняются несколько ботов. Тогда можно развести арены этих ботов на разное время.
Например: schedule_offset: 01:00:00
friendly_clans
Список из ID или названий кланов, которые нельзя атаковать на арене.
early_stop
Бот остановит перебор противников, если вероятность победы будет выше указанного здесь значения. Чем оно меньше, тем меньше противников перебирает бот, но качество выбора падает. Если значение выше, то все наоборот.
Например: early_stop: 0.95
last_battles
TODO
normal_max_pages
& grand_max_pages
TODO
normal_generations_count_down
& grand_generations_count_down
TODO
normal_generate_solutions
& grand_generate_solutions
TODO
normal_keep_solutions
& grand_keep_solutions
TODO
randomize_grand_defenders
Если true
, то раз в день бот будет случайно выставлять на гранд-арену 15 самых сильных ваших героев.