我正在开发一个在线问答游戏,并希望对我的评分系统有所帮助。或者一些建议。
基本上,游戏是一组谜题,每个谜题都有一组问题。用户在一个谜题中完成问题和分数。反过来,他对其他人做同样的事情。这是一个基于在线用户的游戏,这意味着每个谜题都有每个谜题的前10名玩家排名,以及所有谜题组合的总体记分牌。此外,用户可以购买额外的谜题。游戏将在一段时间后提供奖品,玩游戏的难度越大,您获胜的机会就越大。
单独为每个谜题获得用户的高分并没有问题,也没有让单独获得该谜题的前10名玩家的问题。问题是当我考虑整体记分牌时。
我的问题是:如果知道购买更多谜题的玩家应该有优势,那么我将如何排名前10名玩家,但与此同时,他不能比其他拥有更高百分比的玩家更好。
详细信息,请考虑以下情况:
- Player1
* Free Puzzle 1: 60 points 80%
* Free Puzzle 2: 80 points 85%
* Paid Puzzle 1: 80 points 89%
-Player2
* Free Puzzle 1: 50 points 72%
* Free Puzzle 2: 40 points 66%
* Paid Puzzle 1: 40 points 55%
* Paid Puzzle 2: 70 points 80%
如果我们比较这两个玩家,我们会看到第二个玩家购买了更多谜题,但玩家1的得分更高。
如何在保留两个方面的同时解决这个问题。球员的花钱与球员的表现。如果我像这样平均出来,
Player 1: (80+85+89)/3 = 84.66%
Player 2: (72+66+55+80)/4 = 68.25%
这将使球员1排名更高。还要考虑到用户可能只玩1个谜题并且得分高于其他人。我需要找到妥协方案。
请注意我不需要任何代码逻辑的帮助,这只是我需要实现的一般概念帮助。
由于
答案 0 :(得分:0)
可能有很多不同的方法可以解决这个问题,从我的头部的顶部提出一些想法:
为玩家购买更多谜题实现额外权重的一种相当简单的方法实际上是使用付费谜题的数量作为某种参数:
- Player1
* Free Puzzle 1: 60 points 80%
* Free Puzzle 2: 80 points 85%
* Paid Puzzle 1: 80 points 89%
-Player2
* Free Puzzle 1: 50 points 72%
* Free Puzzle 2: 40 points 66%
* Paid Puzzle 1: 40 points 55%
* Paid Puzzle 2: 70 points 80%
Player 1: numberOfPaidPuzzles + (80+85+89)/3 = 86.66
Player 2: numberOfPaidPuzzles + (72+66+55+80)/4 = 70.25
单独使用numberOfPaidPuzzles进行切割是非常轻微的,所以你可能想要对这个参数进行一定程度的加权,类似于下面的例子,奖励玩家可以玩更多的谜题" -part你的问题:
weightFactor = totalNumberOfAvailablePuzzles / n;
playerAverageScore = playerAverageScore * (weightFactor * totalNumberOfPuzzlesPlayed)