1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Формула статистики бота

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Wizard[EWoD], 20 май 2010.

  1. Wizard[EWoD] Ньюфаг

    Сообщения:
    70
    Спасибы:
    0
    Кто знает какие-нить нормальные формулы для расчёта очков из статистики? У меня стоит по умолчанию:
    (((wins-losses)/totgames)+(kills-deaths+assists/2)+(creepkills/100+creepdenies/10+neutralkills/50)+(raxkills/6)+(towerkills/11))
    Но что то мне не нравится её результаты. Есть какие-нибудь варианты? И если изменить формулу в боте на её основе пересчитаются очки по старым играм? Или по новой формуле будут считаться очки только в последующих играх?
  2. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Код:
    (((wins-losses)/totgames)+(kills-deaths+assists/2)+(creepkills/100+creepdenies/10+neutralkills/50)+(raxkills/6)+(towerkills/11))+((totgames*(0.2+courierkills*0.2))-(deaths*0.5)+(wins-losses))+(creepkills/100)+((deaths+kills)/1000)+((creepkills+creepdenies)/100)
    Моя ><

    Формула делает расчет на все игры - и предыдущие и последущие...
  3. Wizard[EWoD] Ньюфаг

    Сообщения:
    70
    Спасибы:
    0
    Что то по твоей формуле выходит чем больше игр сыграно тем больше очков, что как то не очень :-[
  4. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    А вдруг ты играешь одну игру на моем боте и берешь рикимару со счетом 40-0 побеждаешь. И тебе считай почти вечный ТОП1...

    Да, офк, есть и mingamesplayed параметр, который отсеивает "одиночников"... Вообщем это уже тебе выбирать.
  5. Wizard[EWoD] Ньюфаг

    Сообщения:
    70
    Спасибы:
    0
    Да я тебе говорю конкретно ТВОЯ формула имеет реальный упор на кол-во сыгранных игр, на моём боте сыграно порядочно игр, мною около 100 и ещё целым рядом игроков в районе 50, и многими меньше 50. Так вот по твоей формуле (я открыл окно ТОП в базе) почти все игроки выстроились по убыванию от кол-ва сыграных игр. Я встал на 1е место, т.к. сыграл 80+ игр, хотя средний херо кил пер гейм у меня 8, и средняя смертность 4, при том что есть игрок у которого средний херо кил 14 (!), и средняя смертность 5, но сыграл он всего 28 игр, в топе он оказался далеко от 1го места.
    Про случайные 40-0 ты сам ответил на свой вопрос - у меня стоит mingamesplayed = 5.
    Итак у кого-нить ещё есть варианты формул?
  6. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    вот алтернативная формула представленная гхостом
    Код:
    (((kills-deaths+assists*0.7)*0.6+towerkills*0.8+raxkills+creepkills*0.02+creepdenies*0.08+neutralkills*0.03+courierkills*0.04)*0.5+(wins/totgames*2)+(totgames*0.002))
  7. Wizard[EWoD] Ньюфаг

    Сообщения:
    70
    Спасибы:
    0
    Вот спасибо, попробую с ней!
  8. Hanapi Ньюфаг

    Сообщения:
    9
    Спасибы:
    0
    Кстати, куда эта формула вводится?
  9. GoldenAngel Ньюфаг

    Сообщения:
    42
    Спасибы:
    0
    Hanapi, в файле ghost.cfg находишь такую строчку:
    Код:
    bot_scoreformula = (((wins-losses)/totgames)+(kills-deaths+assists/2)+(creepkills/100+creepdenies/10+neutralkills/50)+(raxkills/6)+(towerkills/11))
    
    и меняешь её на:
    Код:
    bot_scoreformula = (((kills-deaths+assists*0.7)*0.6+towerkills*0.8+raxkills+creepkills*0.02+creepdenies*0.08+neutralkills*0.03+courierkills*0.04)*0.5+(wins/totgames*2)+(totgames*0.002))
    
    Вот и всё))

    П.С. а ну да, еще файл ghost.cfg надо сохранить :D
  10. Oboroten Ньюфаг

    Сообщения:
    8
    Спасибы:
    0
    bot_scoreformula - это строчка отвечает за очки, которые даются за одну игру, или же бот считает по этой формуле общий рейтинг?
    Т.е. если изменить формулу, пересчитаются ли очки за старые игры?

    Есть ли какие-нибудь условия для получения очков? Например, чтобы в игре присутствовали игроки как на одной, так и на другой стороне?