我有一个由较小的瓷砖/块组成的网格(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 的做法:
创建一个网格类,其中包含一个 2D 数组。它可用于创建方法,例如surrounding(int x, int y)
返回周围的瓷砖。
二维数组。
像 OOP 方式,但有点混乱。您将从 (x-1, y), (x + 1, y), (x, y + 1), (x, y - 1) 获得周围的瓷砖。
一维数组。
就像你在你的例子中一样。这可能更难使用,我不推荐它。如果您确实想使用这种方式,则可能必须为网格的“宽度”设置另一个 int 变量。在提供的示例中,它是 6,因此周围的瓷砖将是:
(i - 6), (i - 1), (i + 1), (i + 6)。
我强烈推荐二维数组或网格选项。我更喜欢的 Grid 非常好,如果你想让事情尽可能花哨的话。