我打算用Java编写Mario的副本。我在考虑两个级别的表示形式/数据结构,但不确定该选择哪个:


一个2D整数数组。
用四叉树将级别分成几部分。


它的优缺点是什么?

最佳答案

绝对是某种类型的二维数组。整数将是一个好主意,但是字符将是一个更好的主意。

考虑制作一个基本上是“地图”的文本文件。它可能是10行乘10列的文本。在这种情况下,非常简单的地图。也许您可以使用“ a”表示草,使用“ b”表示砖头。这样,您甚至可以在将地图付诸行动之前从视觉上了解您的地图。但是您基本上可以对应用程序进行编程,使其依赖于此文本文件来进行映射。

例如,考虑以下地图:

bbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaa


因此,这看起来像是三排长草上方的一条长砖路。想象一下,使用各种字符a-z和A-Z,甚至是像$或%或&这样的标点符号,使该方案变得更加复杂。

然后,您只需更改文本文件即可即时创建地图。如果使用整数,则仅限于10个字符(或10个地图对象本身)。例如,如果您有10个以上的对象,那么如何制作数字彼此相邻的文本文件呢?您将不知道如何分隔数字。

四叉树的缺点是过于复杂,无法快速访问特定元素。

09-10 10:01
查看更多