【发布时间】:2014-05-22 08:57:44
【问题描述】:
我正在尝试使用 MVC 模式创建一个回合制纸牌游戏。我对正确的设计有些怀疑。
我创建了一个由这些类组成的模型:
- 卡片(使用套装)
- 牌组(40 张牌,抽牌法,剩余牌数)
- 表
- 西装(枚举)
- 玩家(手牌,姓名,如果是人,手牌数量,收集的牌我认为)
- GameModel(引用了 Deck、Table 并在构造函数中包含两个玩家)
当用户按下“新游戏”按钮时,我将创建两个 Player 对象和 GameModel(计算机和玩家)。 这是正确的方法吗?(我猜我不需要策略模式)
我创建了一个 GameController 类,它引用了 GameModel 类和 GameFrame(视图)类。
我需要在计算机正在玩或有人赢牌并拿起桌上的牌时实现某种“暂停”,所以我想我需要创建一个带有游戏循环的 Runnable 类。对吗?
这些类应该如何交互? (这是正确的英文吗?xD)
玩家动作示例:
点击卡片按钮 --> actionListener --> 调用 GameController 方法来检查动作是否可能(轮到我玩,我可以玩,电脑玩) --> 如果可能的话,GameController 更新 GameModel --> GameLoop注意 GameModel 的变化并调用一些升级视图的 UI 方法(使用一些 Thread.sleep(...))。 这行得通吗?
但在这一切中,我应该把 AI 放在哪里?感谢您的帮助 :)
【问题讨论】:
-
您可以将此问题移至programmers.stackexchange.com
-
@fxm 为什么不gamedev.stackexchange.com?
-
谢谢,我不知道这个网站。
-
@val 它也可以,但在我看来,软件架构问题更多属于第一个(主观意见,我会给你:))
标签: java model-view-controller