0

我正在构建一个在线多人棋盘游戏,并且我有一个创建新棋盘的功能。我需要在每一轮之后都这样做,但我似乎无法让它对所有用户只执行一次。当计时器到达 0 时,我在游戏所在的页面上调用该函数,因此它会为该页面上的每个用户执行。

因此,该函数生成一个新棋盘的次数与当时玩游戏的用户一样多,但我希望它只生成一个棋盘。

所以,我的问题是如何让 PHP 函数只执行一次,而不是打开页面的次数?

在系统上编辑:用户玩 90 秒,然后他们等待 15 秒,同时看到回合结果,然后整个事情一次又一次地重复。如果您在回合中间进入页面,您可以选择等到新回合开始或立即进入该回合。所以我不知道在哪里调用该函数。我尝试在显示结果的暂停菜单开始时调用它,但它只是为所有用户执行该功能。它仍然有效,因为在所有执行结束时我仍然得到一个板,但这是不对的,特别是如果有被数百人玩,棋盘会产生数百次。而且,生成该板的是一个 c++ .exe,它在服务器上创建一个 XML。我从 PHP 执行该 exe 并做一些额外的事情。

我不知道在哪里调用该函数。如您所说,我如何预渲染董事会?该功能仍然必须位于某个用户必须访问才能执行的页面上。真是令人难以置信。

而且我还尝试在数据库中添加信息以查看之前是否调用过该函数,但它仍然同时发生在所有用户身上。

4

2 回答 2

1

我认为我们需要更多关于您使用的系统的信息才能给出实际答案,但一般程序可能是在特定游戏中的客户第一次报告达到特定回合结束时生成棋盘。将该棋盘的信息以及游戏 ID 和回合数保存在数据库表中。然后,每当同一游戏中的客户报告完成了同一回合时,将保存的棋盘发送给他们,而不是再次生成新棋盘。

于 2013-10-06T18:21:19.347 回答
0

使用数据库将您的电路板保存在

当倒计时到 0

检查数据库中是否有板,如果没有创建新板(请注意,如果创建新板需要很长时间,您可以预先渲染板)。

于 2013-10-06T18:20:16.253 回答