跟踪动态导航

时间:2013-02-06 20:35:52

标签: java algorithm data-structures

我有一个网格(4x6),它由较小的图块/块组成。 当有人在网格中移动时,我需要跟踪他们移动到的确切位置。 所以,如果我为瓷砖编号

 1- 2- 3- 4- 5- 6
 7- 8- 9-10-11-12
13-14-15-16-17-18

现在,如果我是10岁,我可以移动到4,9,11,016。

我应该如何跟踪这个?我可以使用哪种数据结构来存储这些信息?

1 个答案:

答案 0 :(得分:0)

3个选项。

OOP方式:

创建一个包含内部2D数组的网格类。它可用于创建诸如surrounding(int x, int y)之类的方法,这些方法将返回周围的区块。

2D数组。

像POP一样,但有点麻烦。您可以从(x-1,y),(x + 1,y),(x,y + 1),(x,y - 1)获得周围的图块。

1D阵列。

就像你的例子中一样。这可能更难使用,我不推荐它。如果你确实想要使用这种方式,你可能必须为网格的“宽度”设置另一个int变量。在提供的示例中,它是6,所以周围的瓷砖将是:

(i-6),(i-1),(i + 1),(i + 6)。

我强烈建议使用2D数组或网格选项。如果你擅长制作尽可能精美的东西,我更喜欢网格。