0

对于我应该如何实现以下应用程序,我真的很困惑。我有 90% 的代码,但最后 10% 我想不通。我无法弄清楚我应该如何控制事件的流动。我将首先描述应用程序/游戏。

游戏

事件的流程是这样发生的。用户设置团队数量和回合数。然后游戏将显示一个屏幕,上面写着“传递给第 1 队”。然后,第 1 队的玩家按下一个按钮,该按钮推动另一个视图。

在这个视图中,当前玩家试图向他们团队中的其他玩家描述屏幕上的单词/名称而不说它们。每次有人猜对一个单词/名称时,玩家按下一个按钮,该按钮会拉出更多单词,并将该团队的分数加 1。这种情况一直持续到计时器用完为止。

当计时器用完时,这个视图会从导航控制器中弹出,前一个视图会告诉玩家传球给第 2 队。

这将循环计算团队数量和轮数。

我的问题

我的问题是我真的不明白我应该如何跟踪所有这些事件。我有一个“GameBrain”类,我在其中保存了一系列分数和团队名称等,但我不知道如何从每个 ViewController 访问它。

我之前问过一个类似的问题,有人建议了一个 Singleton 类,但后来我读到这是不好的做法,我不禁觉得我应该能够按照 MVC 设计模式来做到这一点。

所以我的问题是,你们将如何编写这样的游戏?

对不起那种含糊的问题。任何帮助将不胜感激。

编辑:代表是正确的方式吗?即我是否会从我的“GameBrain”中创建我需要的第一个 ViewController,将大脑(self在这种情况下)设置为此实例的委托,并让 ViewController 在大脑会触发下一个 ViewController?

4

2 回答 2

3

你的 GameBrain 应该被设计成单例,单例可能有一些不好的方面,但在你的情况下,它们是最好的选择,所以就去吧

因为这个类必须被你所有的 viewControllers 访问,并且因为不需要有这个类的多个实例,所以这将完全适合单例

于 2012-07-02T13:38:02.997 回答
1

我从评论开始,但继续回答。

简而言之,正如@Omar 所说,您描述的单例可能会很好地工作。

更长的版本,几年前我设计了一个这样的小东西,我们发布了它,一切都很好。几个月后,我们拥有了几百万用户,并且经历了多个开发阶段,而我们开始使用的 Singleton 模式正在摧毁这个项目。我可能会提到,我的老板一开始坚持这是一个小项目,我们会在两周内发布它并完成 - 哈,有趣的家伙。

Singleton 不能很好地工作的原因是它限制了模块化。最后,所有“游戏相关”的东西都必须通过这个类返回,而这个类又向另一个类发送了一条消息,该类又向 Singleton 等发送了响应。这太可怕了。

如果您有时间/精力,我建议您为每个游戏创建一个 GameBrain(或其他)类。无论如何,此类通常仅在“游戏屏幕”中使用,那么当您返回菜单或发送电子邮件时,为什么还要保留它呢?如果您需要它持久化,请使其由数据库支持。如果您只需要在一两个额外的地方使用它(您的获胜屏幕可能需要知道谁赢了等),只需通过参考传递它 - 您只需要执行一两次即可。

祝你好运。

于 2012-07-02T13:52:31.273 回答