我有一个网格(4x6),它由较小的图块/块组成。 当有人在网格中移动时,我需要跟踪他们移动到的确切位置。 所以,如果我为瓷砖编号
1- 2- 3- 4- 5- 6
7- 8- 9-10-11-12
13-14-15-16-17-18
现在,如果我是10岁,我可以移动到4,9,11,016。
我应该如何跟踪这个?我可以使用哪种数据结构来存储这些信息?
答案 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数组或网格选项。如果你擅长制作尽可能精美的东西,我更喜欢网格。