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
我应该如何跟踪呢?我可以使用什么数据结构来存储这些信息?
我有一个网格(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
我应该如何跟踪呢?我可以使用什么数据结构来存储这些信息?
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)。
我强烈推荐二维数组或网格选项。我喜欢的网格非常好,如果你肛门尽可能幻想。
你想追踪这个人到底在哪里,或者他们能去哪里? – Kevin
他去过哪里。 – 12rad
只需使用一个堆栈。在每次移动后推动堆叠。 –