1

我有一个二维网格,其中宽度和高度始终相同。

[0][1][2]
[3][4][5]
[6][7][8]

我将它的数据源缩减为一维数组。

[0][1][2][3][4][5][6][7][8]

元素的访问是可行的,但棘手的部分来了:当仍在处理一维数组时,如何知道单元格的邻居是否在网格之外?

例如,[5] 的右上邻居不在网格中,但使用计算的偏移索引,我会得到 [3]。

有这方面经验的人吗?

4

1 回答 1

4

假设您知道 (i) 单元格的索引和 (2) 网格的尺寸(合理吗?),并且它在 1D 数组中的索引是k,并且在 2D 数组中是i, j

然后k = i * width + j。因此i = k / widthj = k % width。(/是整数除法,%是模数)。

获得这两个索引后,您就知道相邻单元格的索引,并且可以照常检查这些索引与边界(我假设您知道如何操作)。

于 2016-03-06T19:55:17.790 回答