gpt4 book ai didi

java - 在文本冒险中实现退出

转载 作者:行者123 更新时间:2023-12-01 19:05:45 26 4
gpt4 key购买 nike

我正在为 Java 编程类(class)编写一个文本冒险游戏。我正在使用父abstract 房间类设置房间,每个房间都将从该类继承并配置该房间。

对于退出,房间将仅调用 .addExit() 方法并向其传递退出对象。游戏的每个房间应该只有一个实例。退出对象应该有一个目标字段,指向在构造函数中初始化的游戏房间之一。

我的问题是我不知道如何向退出构造函数传递预先存在的房间引用而不是新的房间对象。在我看来,有两种可能的方法:

  1. 直接向退出构造函数传递对房间实例的引用。
  2. 有一个静态类来跟踪所有房间实例,并具有从字符串名称或类等返回实例的方法。
    然后,向退出对象的构造函数传递一种标识目标房间的方法,例如唯一的字符串名称,然后对象构造函数使用该名称来调用返回房间实例的静态类方法之一。

我不确定哪个是最佳选择,如何实现任一选项,或者是否有更好的方法。

最佳答案

我认为为每个房间设置一个单独的类不是一个好主意。您可能最好使用单个 Room 类,其中每个实例代表一个单独的房间。 (我知道 MUD 是这样编码的,但即使在那里你也有“虚拟”)

但除此之外,问题是:Exit 是房间的属性还是可以并且应该单独管理的东西?

答案取决于您到底想用这些 Exit 做什么。例如,如果您想要强制执行双向导出(即,如果有从房间 A 到 B 的导出,则应该有一个从 B 到 A 的导出),则单独的导出管理类可能是合适的。但是,如果您只需要能够列出一个房间中的所有导出,然后通过其中一个导出移动到另一个导出,那么它们可以是 Room 的属性。

如果您事先不知道,请从简单的开始(导出分别添加到每个房间),如果不起作用,您可以随时切换到更复杂的解决方案。

关于java - 在文本冒险中实现退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10176545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com