如果根据挑战结果,排名变化的逻辑不同,还可能有更复杂的需求,比如下面这种排名:A B C D E FE挑战B,同时F挑战B,F先结束,胜,排名变成:A F C D E B然后这时E也获胜:一种设计是E的挑战白费了,名次不变,这样如果玩家注意到辛辛苦苦挑战白费,可能会不爽。另一种更合理的逻辑是E挑战成功后排名变成:A F E C D B相当于E名次窜到CD之前,而CD的名次向后顺延。这种设计的合理之处在于“任何一个玩家X,如果他的名次在另一个玩家Y之前,那么他要么直接战胜过Y,要么战胜过战胜过Y的玩家Z,即X直接或间接强于Y”。E挑战B时,B排在CD之前,即E挑战B时B强于CD,那么战胜了B的E也强于CD,所以把E排在他们前面,而对于C和D,由于有两人同时战胜了强于他们的B,所以他们的名次被向后顺延。这里会产生更复杂的情况,因为C和D可能同时挑战了别人和被别人挑战,所以当E战胜,发现B不在原位时,不能单纯以CD作为参照物往上爬,同样的道理F作为参照物也是靠不住的,——事实上没有一个玩家是靠得住的参照物,因为大家都可能在变;也不能单纯用E挑战B时他们的排位差值,因为CDF都可能在E结束之前爬得更高,同时也可能有下面的玩家爬上来挤进从E到F的这一段内……这种复杂需求要解决也不是没有办法,比如当任何一个玩家X在挑战比他高的玩家Y时,可以往Y的手里放一个参照物,参照物有可变的属性标明假如挑战获胜是互换还是爬到参照物的后一名,当Y因为各种原因要换位时,参照物传递给下一个合适的玩家………
B
C
D
E
FE挑战B,同时F挑战B,F先结束,胜,排名变成:A
F
C
D
E
B然后这时E也获胜:一种设计是E的挑战白费了,名次不变,这样如果玩家注意到辛辛苦苦挑战白费,可能会不爽。另一种更合理的逻辑是E挑战成功后排名变成:A
F
E
C
D
B相当于E名次窜到CD之前,而CD的名次向后顺延。这种设计的合理之处在于“任何一个玩家X,如果他的名次在另一个玩家Y之前,那么他要么直接战胜过Y,要么战胜过战胜过Y的玩家Z,即X直接或间接强于Y”。E挑战B时,B排在CD之前,即E挑战B时B强于CD,那么战胜了B的E也强于CD,所以把E排在他们前面,而对于C和D,由于有两人同时战胜了强于他们的B,所以他们的名次被向后顺延。这里会产生更复杂的情况,因为C和D可能同时挑战了别人和被别人挑战,所以当E战胜,发现B不在原位时,不能单纯以CD作为参照物往上爬,同样的道理F作为参照物也是靠不住的,——事实上没有一个玩家是靠得住的参照物,因为大家都可能在变;也不能单纯用E挑战B时他们的排位差值,因为CDF都可能在E结束之前爬得更高,同时也可能有下面的玩家爬上来挤进从E到F的这一段内……这种复杂需求要解决也不是没有办法,比如当任何一个玩家X在挑战比他高的玩家Y时,可以往Y的手里放一个参照物,参照物有可变的属性标明假如挑战获胜是互换还是爬到参照物的后一名,当Y因为各种原因要换位时,参照物传递给下一个合适的玩家………
当然,还是有一种情况解决的,就像现在的天天飞车,很好的解决了这个问题。每个人只关注自己的排名,比如说上面那种情况。在每个角色的排名里,他本人都是第二名,互不影响。在别人的排名里,都是第一或第三名,奖品只发给个人排名里的,那每个人都拿到第二名的奖品。不冲突。
如果照上面说的,可以混战而排名的话。
一,每个挑战对象在比赛的时候,不能接受或被接受挑战(就好比你网上玩斗地主,你在玩的时候,别人是进不来你的房间和你玩的)
二,允许比赛的时候被动接受第三者的挑战(这个感觉有点乱)。
无论上述哪种方式,排名按时间挑战结果。比如说A和C在比寒的时候,B挑战A。AC先结束,A赢A第一,这时候B赢了A,B第一,如果这时候C又赢了B,C第一。
非实时游戏,这个需要是不行的,必须一个人只能同时被另一个人挑战;