如果您的网格可以是不同的尺寸(即4x6然后10x15),您将如何找到特定细胞附近的细胞?是否有可能说你在第15单元并告诉它,如果它是一个10x10网格,那么单元格15有5,14,16和25个单元作为邻居?或者,网格可以具有许多不同的维度这一事实使得无法在C ++或Java中使用可以即时运行的函数吗?
答案 0 :(得分:2)
让我们构建一个算法:
根据维度m
行* n
列,我们有以下示例网格。在此示例中,m
为2,n
为3。
+-----+
|0|1|2|
+-----+
|3|4|5|
+-----+
现在,我们可以确定垂直位置a
和水平位置b
中的单元格编号为am+b
。
由于我们知道m
,让我们用模数来计算a和b。
由于b小于m
(因为我们在编程中对第一行和第一列使用0),我们可以说gridsquare z
的位置是列{{1} },行z%m
其中floor(z/m)
表示向下舍入为整数。
然后你可以尝试在m和n中加1和减1得到4个相邻的正方形,然后用floor(
计算它们的数字ID,如前所示。