假设我们打开了两个浏览器,并且两个玩家相互连接,在2个不同的浏览器上玩同一个游戏。游戏状态由会话变量记录。游戏结束后,最后一页弹出3个按钮,重新匹配,与其他玩家一起玩,然后断开连接。如何构建一个解决方案,为第一个按下三个按钮中的任何一个按钮提供先到先得的机会。
因此,玩家1按下复制按钮,在事件处理程序下,它将使按钮2和按钮3对于玩家1的会话不可见,但也应该使玩家2的按钮也不可见。如何让玩家1让玩家2的按钮2和按钮3不可见?
总而言之,玩家1按下按钮隐藏2个按钮,强制玩家2的按钮隐藏。玩家2尚未采取行动。
答案 0 :(得分:0)
我在你的数据库中创建一个新表,我们称之为'GameOverStatus'。此表应包含以下字段:GameID,FirstPlacePlayerId,SelectedButtonIndex。
每个游戏都有一个唯一的ID非常重要。此GameID应传递给当前游戏的所有玩家。当第一个玩家到达“Game Over”屏幕时,使用当前的GameID在DB中查询GameOverStatus表。如果没有匹配,我们知道当前的玩家是第一个到达:使用GameID和PlayerID插入GameOverStatus记录。在玩家1单击按钮(重新匹配,玩家另一个等)后,使用正确的SelectedButtonIndex更新数据库中的GameOverStatus记录。
随后的玩家将到达此页面并执行相同的操作:检查GameOverStatus。唯一的区别是现在会有一个记录。阅读记录,然后根据SelectedButtonIndex,将UI配置为显示/隐藏按钮。