Для игрока p пусть его счет будет S_p, где
S_p = C_1 x w_1 + C_2 x w_2 + ... + C_n x w_n
где C_i = характерная оценка i для персонажа (например, сила) и
где w_i - вес характеристики
Для нормализации, вероятно, проще всего иметь w_1 + w_2 + ... + w_n = 1
Для простого результата просто вычислите счет для обоих игроков и сравните - большие выигрыши.
Для чего-то более сложного , вы можете сделать какую-то случайную ничью, чтобы добавить немного случайности в уравнение (то есть, у более слабого может быть хороший день и наоборот, что позволяет более слабому игрок торжествует).
Чтобы сделать персонажей сильнее, вы просто увеличиваете их очки. Вы можете расширить это так, как вам хочется - если вы действительно этого хотите, вы можете начать немного рандомизировать оценки персонажа (то есть персонаж чувствует себя особенно сильным в тот день) и т. Д.
Пример:
Скажем, мы работаем с тремя характеристиками, каждая из которых имеет одинаковый вес (1/3). Игрок A имеет очки: 10, 8, 20. Игрок B имеет очки: 11, 8, 4.
- S_A = 1/3 x (10 + 8 + 20) = 38/3
- S_B = 1/3 x (11 + 8 + 4) = 23/3
Таким образом, используя простой подсчет очков, PlayerA легко побеждает. Даже с рандомизацией он наверняка выиграет у этого PlayerB, но, надеюсь, вы поймете эту идею.