2013-02-06 53 views
0

我有一个网格(4x6),其中包含较小的瓷砖/块。 当有人在网格中移动时,我需要跟踪他们到达的具体位置。 所以,如果我人数瓷砖跟踪动态导航

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

现在,如果我在10,我可以搬到4,9,11,0r 16

我应该如何跟踪呢?我可以使用什么数据结构来存储这些信息?

+0

你想追踪这个人到底在哪里,或者他们能去哪里? – Kevin

+0

他去过哪里。 – 12rad

+0

只需使用一个堆栈。在每次移动后推动堆叠。 –

回答

0

3选项。这样做的

OOP方式:

创建一个包含内部的二维数组的网格类。它可以用来创建方法,如surrounding(int x, int y)这将返回周围的瓷砖。

二维数组。

像OOP的方式,但有点混乱。你会从(x-1,y),(x + 1,y),(x,y + 1),(x,y - 1)得到周围的贴图。

1D阵列。

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

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

我强烈推荐二维数组或网格选项。我喜欢的网格非常好,如果你肛门尽可能幻想。