Уведомления

Группа в Telegram: @pythonsu

#1 Июль 4, 2012 00:33:07

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Статистика

Ребята, есть ли те у кого остались хоть остаточные знания? Нужна методологическая помощь в решении ряда задач.

Например:

Есть три класса бойцов. Каждый класс имеет три навыка, из которых один прокачивает до максимума, второй средний и третий на минимуме.

Сводим все возможные пары бойцов на списке в 7 различных дистанций и проводим на каждой 1000 боёв. Считаем, когда кто победил и сколько раз. Имеем кучу исходных данных. За день машина справляется.

Как увидеть, прокачка какой последовательности навыков для каждого класса более выгодна и как это меняется от исходной дистанции?

Увидеть, кто когда побеждает я могу. Требуется оценить, на сколько нужно изменить бонусы за навыки чтобы классы стали равноценными. При правильной прокачке любой класс должен уверенно побеждать остальные на определенном диапазоне расстояний (близкое, среднне, дальнее) и при этом не должно быть абсолютного чемпиона. Т.е. нужна не только качественная но и количественная оценка.

Как разбить многомерное поле различных исходов на компактные группы выигрышных стратегий, при этом получив сравнительную количественную оценку этих самых выигрышных групп?

Спасибо.



Офлайн

#2 Июль 4, 2012 11:28:49

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Статистика

Мне кажется задачу можно упростить до 2-мерной матрицы и ее анализировать.
Составляем список всех возможных характеристик бойцов.
Получаем очень большое кол-во уникальных бойцов (Х) со всеми возможными значениями прокачанных навыков для каждого класса.
Можно составить матрицу Х столбцов и 7 строк (дистанции).
Значения матрицы - кол-во побед.

Далее решаем в 2 этапа.
1. Отсеиваем несбалансированных игроков по дистанции.
Для этого считаем моду для каждого столбца Х.
Если у бойца наблюдается мультимодальность для разных диапазонов расстояний, значит баланс нарушен.
Получаем список бойцов (фактически, характеристик навыков), которые должны быть запрещены для соблюдения баланса.
Убираем их из исходной матрицы.

2. Определяем бойцов, обеспечивающих второе условие - уверенную победу.
Определяем моду каждой строки.
Если нужен только 1 чемпион (чемпионский набор характеристик), то мода должна быть единственная.
Если допускается несколько, то разрешается мультимодальность.
Если я правильно понял, нужен второй вариант.
Причем, кол-во мод должно быть равно кол-ву классов игроков.

Бойцы (столбцы) с кол-вом побед, равным моде - это и будет искомый набор характеристик.

Еще можно проверить кол-во столбцов с кол-вом побед, равным моде.
Очевидно, если их слишком много внутри одного класса игроков, то нужно менять веса (бонусы) характеристик.



Отредактировано Lexander (Июль 4, 2012 11:34:19)

Офлайн

#3 Июль 4, 2012 23:11:34

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Статистика

Lexander, спасибо.

Только я не понял слегка. Мода — это по википедии «значение во множестве наблюдений, которое встречается наиболее часто».

Т.е. если считать в лоб по столбцу вашей матрицы — точно получим мультимодальность. Потому что соотношение побед-поражений зависит (в меньшей мере чем от классов) еще и от генератора случайных чисел, на каждой серии испытаний числа чуть разные.

Как в таком случае поступают. Считают по гистограмме, да? Я попробую. На днях — как только выделю время на это. Завтра, наверное, не получится.

Теперь главный вопрос.

Мне нельзя запретить тот или иной набор навыков для класса. Более того, каждый навык может качаться независимо — лишь бы их сумма удовлетворяла порогу для класса игрока на его уровне развития. Т.е. полный-средний-низкий уровни были введены для упрощения и сокращения количества всех возможных исходов.

Хочу понять, насколько та или иная комбинация выгодна — чтобы путем пропорционального уменьшения бонусов найти баланс.

Или я что-то не понял совсем?



Отредактировано Андрей Светлов (Июль 4, 2012 23:12:25)

Офлайн

#4 Июль 5, 2012 00:33:07

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Статистика

Я немного запутался.

Вот смотрите, фраза

Андрей Светлов
При правильной прокачке любой класс должен уверенно побеждать остальные на определенном диапазоне расстояний (близкое, среднне, дальнее) и при этом не должно быть абсолютного чемпиона
противоречит
Андрей Светлов
Потому что соотношение побед-поражений зависит (в меньшей мере чем от классов) еще и от генератора случайных чисел, на каждой серии испытаний числа чуть разные.
в части “должен уверенно побеждать”.

С другой стороны, рандомный коэффициент можно ввести и после вычисления оптимальных значений характеристик и при расчете вообще на него внимания не обращать.
Т.е. “сильный” боец с определенным набором характеристик побеждает, если у слабого противника удача (тот самый рэндом) не выше.

Но сам расчет не должен включать случайную составляющую, иначе результаты расчета будут все время меняться. Т.е. испытания-бои нужно проводить с отключенным генератором случайных чисел.

Андрей Светлов
Мне нельзя запретить тот или иной набор навыков для класса.
Запрещаем не навыки, а значения бонусов. Чтобы обеспечить условие об отсутствии абсолютного чемпиона, ваши бонусы не должны быть такими, чтобы 1 боец (представляющий собой набор бонусов) побеждал на всех дистанциях. Победа - это пик на гистограмме. Самый высокий пик - мода.
Т.е. нужно найти такие значения бонусов, когда мода (или моды) находятся только в одном диапазоне расстояний. Например, на расстоянии 1 и 2 будет 2 моды - это нормально, боец побеждает на малых дистанциях. А вот 1, 2 и 7 не может существовать и такие значения бонусов следует забраковать, т.к. боец побеждает на малой и дальней дистанции, что противоречит начальному условию.

Когда вы получите все моды по столбцам и строкам вы будете иметь диапазон допустимых бонусов для каждого класса. И пусть себе игрок “качает” навыки как хочет в этих пределах.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version