Арена

Как это работает?

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 самых сильных ваших героев.