6

这与其说是一个技术问题,不如说是一个风格问题。我正在对 Android 的 peg solitaire 进行概括,您可以玩不同的级别。他们每个人都会有不同的棋盘起始配置,你可以做的不同的动作,等等。现在我已经用一个基本级别编程了,所有这些变量最初都是这样初始化的。

我是否添加了一个具有所有不同级别的文本文件,并对其进行编程以从文本文件中读取它?我是否添加了一个 Level 类,其中包含每个级别的所有这些信息,并在它初始化时创建几个 Level 对象?我是否创建了一个 Level 类,但通过从文本文件中读取级别来初始化它?

我确信所有方法都可以,但是有标准的方法吗?我以前从未编写过这样的程序。

4

2 回答 2

5

真的没有标准的方法来做你想做的事,它真的取决于你需要存储的数据的复杂性来进行每个级别的初始化。这些数据会改变还是静态的?将其正确组织并与代码逻辑分开是否有意义?这些是您需要自己回答的问题,因为这是您的游戏,我们不知道所有细节。

鉴于此,您决定是否应该将该数据存储在 XML 文件、TXT 文件或其他文件中。真的没有正确答案。但是你应该(IMO)总是有某种Level类,这是在 OOP 上下文中的正确方法。构造函数可以有必要的参数来从 XML/TXT/任何数据构建关卡。它还可以具有所有级别参数,因此如果出于某种原因需要,您可以通过代码初始化所有内容。当然,不要忘记所有这些级别属性的 getter/setter 方法。

我认为你不应该做的一件事是“在初始化时制作几个 Level 对象”。你应该将你的游戏逻辑与数据分开,你不应该把两者混为一谈。

可能不是您要寻找的答案,但这主要取决于您。

于 2012-08-30T23:57:33.093 回答
2

我和我的朋友这样做的方式是将关卡属性存储在数据库中,然后根据用户选择的关卡,我们读取数据库并将其加载到我们的关卡类中,从而为用户创建关卡!

编辑

我们也是初学者,但是在制作完第一个关卡之后再制作新关卡非常容易。=] 特别是因为我们所要做的就是向我们的数据库添加一行并填写值。

于 2012-08-31T00:01:48.537 回答