我想知道最快和最有效的方法,以计算点数和排名的实时。
我正在做一个博彩足球游戏(一个游戏,用户试图预测之前的比赛结果)。我的国家叫"Quiniela“。
在比赛开始前,球员们会做出“预测”。我的问题是:从游戏开始的那一刻起,这是计算玩家“实时”排名的最有效方法(不仅仅是代码级别,还有数据库和服务器),作为他们对游戏实际结果的预测。
例如:
如果Team1和Team2玩游戏,用户U1预测游戏结束0-0,U2预测游戏结束1-0,U3预测游戏将1-1结束。
当比赛开始时,U1将排在第一位,因为如果比赛像这样结束,他的预测是正确的,或者至少是最准确的。
然后分数切换到1-0,用户U1将是排名的最后一位(因为他的预测不再可能),U2将是第一位,U3是第二位。
如果分数改变为1-1,U2将是第一位,U3将是第二位(因为他猜到了部分结果),U3则是最后一位。
我考虑创建一个层次的可能性树(0-0第一个节点,1-0和0-1作为子节点),当您更改分数时,更改排名“暂时”,我会将其保存在缓存中。
一旦游戏结束,我就把最新的排名保存在数据库中。
有更好的方法来解决这个问题吗?以前就有人提出过,现在已经解决了?我在数据库中使用MySQL,服务器使用PHP (Cake ),偶尔会使用一群要求排名的手机。
为我蹩脚的英语感到抱歉
发布于 2015-01-26 02:11:03
我将使用以下方法:
保存一个排名表,在每个游戏日之后存储当前的排名。复制临时排名表的表。每当游戏日开始时,将玩家当前的排名复制到临时排名表中(您可以通过在原始排名表中引入一个temporary_score列来避免第二个关系和复制)。
每当游戏核心发生变化时,重新计算所有分数。游戏结束后,您只需将临时排名复制回排名表。
https://stackoverflow.com/questions/28143870
复制相似问题