两个玩家游戏 - 如何使用数据库匹配它们?

时间:2014-09-04 14:31:19

标签: algorithm

我正在开发一个简单的游戏程序。这个游戏是基于网络的,两个玩家互相玩。现在我需要随机匹配玩家。我使用的方法如下。

玩家进来了 - >将用户置于数据库中,可用性为1,对状态为0 - >随着越来越多的玩家加入,db有许多想要匹配的玩家 - >因此,玩家获得其他玩家ID的数组并随机选择一个 - >然后将ID作为对手 - >将可用性更改为0并将状态1对。

所以这里的问题是,有时2名玩家获得相同的ID(相同的对手)。所以我真的在寻找解决这个问题的方法。

我的想法是,我制造临时对手,检查球员是否正确对方,然后将其作为一个真正的对手。如果他们没有自己的名字作为临时对手,那么移除临时对手并继续寻找匹配的球员。

我试图描述我遇到的问题。任何想法都将不胜感激!

谢谢!

2 个答案:

答案 0 :(得分:0)

主要取决于玩家匹配的实现方式,但是你需要确保只分配两个玩家(如果尚未分配),并且只使用一次ID。

是否有多个进程在进行匹配?

答案 1 :(得分:0)

你应该有一个交易。将对手的可用性设置为0并创建游戏行。创建完成后,检查对手是否已经玩过另一个游戏,如果是,则回滚。