【问题标题】:PHP Black Jack game; updating displayPHP 二十一点游戏;更新显示
【发布时间】:2012-12-18 04:07:09
【问题描述】:

我关于 stackOverflow 的第一个问题!在这里阅读了大量有用的花絮,但无法找到以下问题的有用答案。

我用 PHP 编写了一个二十一点游戏,作为 OO PHP 的学习经验。我有一个主要对象,其中包含所有卡片的详细信息和游戏状态,我将其序列化并将其保存到文件中,但是当多人同时玩时,这会导致冲突。我已经查看了会话并将这些数据保存在那里,但想知道我是否需要生成特殊的会话 ID 等。我该怎么做

另外,我还没有考虑过这个问题可能有一个很好的解决方案。提前致谢。

【问题讨论】:

  • 你是如何测试多人玩这个游戏的?您是否只是在浏览器中打开了一个新选项卡并连接到同一个站点?还是 2 个人在不同的电脑上玩这个游戏?
  • 手册给出了several examples如何使用会话。我将从其中一个示例开始,并根据需要进行扩展。

标签: php session savestate blackjack


【解决方案1】:

我会为此使用数据库。您不应该使用会话来保存游戏状态,因为它要求游戏的所有玩家都拥有相同的数据,因此,您需要复制每个玩家的数据并将其保存在其他玩家的会话中。

当您尝试访问数据库中的数据时,使用会话进行身份验证并知道谁是谁

【讨论】:

  • @user482594:我通过打开两个浏览器进行了测试,假设当我连接到服务器时,它会给每个浏览器一个唯一的 ID,它可以通过会话 ID 进行跟踪。我希望有一种方法可以将唯一的会话 ID 与存储的有关每个连接用户的会话数据联系起来。但我想这不太可能!
  • 我认为会话记录了每个登录用户的唯一信息位,因此使用 session_id 作为会话名称肯定是有意义的。即'代码' $mySession_id = session_id(); $mySaveState = 序列化($this->card_pack); $_SESSION['$mySession_id'] = $mySaveState;这应该将我的 card_pack 对象中的数据保存在该特定用户的会话 ID 名称下,而不是其他任何人。还是我完全误解了会话的工作方式?干杯
猜你喜欢
  • 2020-06-18
  • 2023-03-21
  • 2020-05-18
  • 1970-01-01
  • 2014-10-22
  • 2022-11-12
  • 2012-10-16
  • 2015-06-02
  • 1970-01-01
相关资源
最近更新 更多