如何为游戏创建排名算法
How to create a ranking algorithm for a game
我正在为我正在开发的游戏创建排名公式。我希望能够根据两个标准找出最佳球员:
- 时间
- 步骤
有一个任务T每个玩家都必须完成。这个想法是在最少的时间和最少的步骤内完成它。
如果不保持有限的时间(1800 秒)和有限的步数(25),我什么都想不出来。
根据以上计算,选手5最好,选手1次之
但是我们可以很明显的看到选手4的身材更好
我该如何改进这个或者有没有其他计算方法?
您可以使用加权算术平均数。时间和步骤将有价值。例如:
TimeV = 1
StepsV = 90
Score = (Time*TimeV+Steps*StepsV)/Time+Steps
您必须决定哪个时间或步数更重要。在示例中,时间和步骤很重要。
您可以将时间和步数归一化。
Select 一个 "max value" 表示时间,一个 "max value" 表示步数(例如您已经使用的 1800 和 25)。现在将其标准化为 1。所有时间和步长值现在应介于 0 和 1 之间。最后将标准化值相加。
例如 900/1800 = 0.5。 12/25 = 0.48。如果将这些加在一起,您将得到 0.98 分。如果你对每个玩家都这样做,你会发现他们会得到以下分数:
- 玩家 1: 0.98
- 玩家 2: 0.82
- 玩家 3: 0.8267
- 玩家 4: 0.7733
- 玩家 5: 0.8667
从这里可以看出玩家4的分数最低,这就是你想要的。
如果您希望时间或步数在最终得分中比另一个更重要,您可以更改时间和步数的最大值(现在为 1800 和 25)以调整哪个更重要,或者您可以在将两个归一化值相加之前添加权重。
我正在为我正在开发的游戏创建排名公式。我希望能够根据两个标准找出最佳球员:
- 时间
- 步骤
有一个任务T每个玩家都必须完成。这个想法是在最少的时间和最少的步骤内完成它。
如果不保持有限的时间(1800 秒)和有限的步数(25),我什么都想不出来。
根据以上计算,选手5最好,选手1次之
但是我们可以很明显的看到选手4的身材更好
我该如何改进这个或者有没有其他计算方法?
您可以使用加权算术平均数。时间和步骤将有价值。例如:
TimeV = 1
StepsV = 90
Score = (Time*TimeV+Steps*StepsV)/Time+Steps
您必须决定哪个时间或步数更重要。在示例中,时间和步骤很重要。
您可以将时间和步数归一化。
Select 一个 "max value" 表示时间,一个 "max value" 表示步数(例如您已经使用的 1800 和 25)。现在将其标准化为 1。所有时间和步长值现在应介于 0 和 1 之间。最后将标准化值相加。
例如 900/1800 = 0.5。 12/25 = 0.48。如果将这些加在一起,您将得到 0.98 分。如果你对每个玩家都这样做,你会发现他们会得到以下分数:
- 玩家 1: 0.98
- 玩家 2: 0.82
- 玩家 3: 0.8267
- 玩家 4: 0.7733
- 玩家 5: 0.8667
从这里可以看出玩家4的分数最低,这就是你想要的。
如果您希望时间或步数在最终得分中比另一个更重要,您可以更改时间和步数的最大值(现在为 1800 和 25)以调整哪个更重要,或者您可以在将两个归一化值相加之前添加权重。