java - 在 Java 中与基于文本的游戏中的其他对象交互

标签 java oop model-view-controller object text-based

我会尽力解释清楚,以免造成混淆。另外,我并不是在寻找操作方法,只是寻找一些有关如何开始并朝着正确方向前进的提示。

我对一般编程还比较陌生(用 Java 编程还不到 5 个月),而且我几乎没有学到很多关于编程的知识。我已经理解了一些概念,但我一直在尝试理解 MVC(模型、 View 、 Controller )的概念。我做了一些研究,并想将其应用于基于视觉文本的游戏。

在游戏中,玩家可以浏览一系列“房间”,有些是用于探索的,有些是我所说的“死亡室”,玩家最终会死亡并必须从头开始房间。游戏的重点是逃脱并找到导出房间,导航是通过四个按钮控制的,每个方向有四个方向;现在没什么难的。但是,我无法理解如何使房间对象彼此交互。例如,如果玩家单击向左走的按钮,他们应该能够进入当前所在房间左侧的房间。模型将负责根据方向更新玩家所在的房间玩家想要离开。

换句话来说,建模一系列与玩家当前所在房间的北、南、东、西其他房间交互的房间需要什么技巧? (希望我说得足够清楚。如果您需要澄清,我会回答任何问题。)同样,我正在寻找能够集中我的思考的建议,而不是完整的操作方法。另外,我已经为房间设置了类和接口(interface)。

最佳答案

这是一个有趣的用例。 模型- View - Controller 模式 最常见于 Web 应用程序中,但您当然可以使其适用于基于文本的游戏。

型号

在模型层中,我们将拥有实体 - UserRoom

Controller

Controller 解析输入,更新模型并为 View 传递必要的数据。因此,在输入“east”时,示例 Controller 代码可能是:

User user = User.current();
Room east = user.getRoom().getEast();
user.move(east);
render(east);

查看

Render 方法会将新房间作为参数,并且可能会解析某种显示新房间的名称和描述的模板。

希望这有帮助。我个人会使用command pattern在这种特殊情况下。

关于java - 在 Java 中与基于文本的游戏中的其他对象交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15122429/

相关文章:

javascript - 如何开始使用 Backbone.js 和 Rails 3.1

java - 在我的以下程序中摆脱 java.lang.NullPointerException

javascript - …不是 javascript {自定义代码}中的函数

javascript - 在多个文件上拆分 Javascript 类 (ES6)?

php - 面向过程程序员的 OOP

model-view-controller - 使用带有 GET 请求的 Spring 3 @Controller 中的命令对象

python - django中业务逻辑和数据访问的分离

java - 输入 editText 超过 10 位时应用程序停止

java - 项目顺序 Eclipse 项目资源管理器 View

java - 过滤crud list问题玩!框架