0

我真的不知道这种分散的问题是否适合这里,但无论如何我都会试一试。

我正在 Django 中构建一个基于回合的(Yatzee)游戏,其中我为用户/玩家提供了一个简单的拉力模型,为每个用户的记分板提供了一个更复杂的模型。

一个新游戏会生成一个新的记分牌,它基本上由许多 int-fields 和 boolean-fields 组成,每个分数一个(例如,如果你得到一个两对,有一个字段将保存分数和一个将其设置为“已分配”的字段)

问题是,通过这种方法,我在每回合后将分数保存到 db(sqlite) 中,我将能够“暂停”游戏并稍后继续。

我现在想开始研究的是如何在网络上为两个或多个游戏“托管”游戏,但实际上不知道从哪里开始。如果他们都坐在同一台计算机上没有问题,因为我可以通过 javascript 控制玩家/记分牌的数量。

为了做到这一点,我正在考虑以某种方式将属于“togheter”的记分牌分配给一个会话,但是我应该如何以及在哪里做这件事目前有点超出我的范围。

我已经阅读了一些有关 Django 中间件的信息,但无法真正弄清楚这是否比尝试从模型层解决它更好(相信这会有点困难......?)。

4

2 回答 2

1

实现此目的的一种方法是构建一个 javascript 框架来轮询后端的玩家活动。有许多玩家活动需要跟踪:

  1. 新游戏
  2. 玩家离开游戏/暂停
  3. 轮到远程玩家掷骰子
  4. 轮到本地玩家掷骰子

我建议使用带有计时器的 AJAX 功能,该计时器可以轮询服务器以获取更新或发布本地玩家活动。

当我说 javascript 框架时,我指的是一种在客户端处理自动轮询和更新的方法。

请注意,您不能依赖 javascript 来处理游戏规则、掷骰子等,所有这些都必须在服务器上完成。javascript 应该只更新播放器的 GUI 以显示当前状态。

因此,您将有 AJAX 调用来执行以下操作:开始新游戏、检查远程活动、掷骰子、保存玩家选项(玩家选择将 3* 六点保存为一对等)等等。

于 2012-06-01T09:14:06.657 回答
0

我不知道中间件与此有什么关系。

最简单的方法肯定是让游戏模型中的外键指向 Player1 和 Player2 的 auth.User 模型。

于 2012-06-01T08:23:13.853 回答