如果两个玩家同时回答,该如何选择答案

时间:2018-07-19 10:49:49

标签: ios swift firebase

我使用Swift 4在Firebase数据库上在线玩游戏 游戏是一个一般性的信息问题,取决于答案的速度 问题是,如果两个玩家同时回答,并且他为所有玩家计算或选择答案,但是我只想计算或选择一个玩家的答案 什么是合适的技巧或代码?

3 个答案:

答案 0 :(得分:1)

这个问题可以看作是互斥问题,如果您不允许在游戏中进行“抽奖”,则应该执行一些并发控制来执行此事务。

很难同时接收两次抽头。您所能做的就是以尽可能最小的比例记录时间(可能是十亿分之一秒),然后确定先发送哪个时间。如果双方时间均等,则应接受还是拒绝这两个提交。

答案 1 :(得分:0)

在那种情况下将不会被记录,这就是为什么您有一个使用firebase的方法可以在这种情况下使用的原因

从Firebase DOC

  

当使用可能被并发破坏的数据时   修改,例如增量计数器,可以使用事务   操作。您为该操作提供两个参数:更新函数   和可选的完成回调。更新功能需要   数据的当前状态作为参数,并返回新的期望值   声明你想写

https://firebase.google.com/docs/database/ios/read-and-write

答案 2 :(得分:0)

以毫秒为单位保存您的数据,然后进行比较。 不要忘记考虑玩家的时区。