如果我有一个 4x4 游戏板,我在程序中将其表示为大小为 16 的一维整数数组。
如何获得任何给定索引的上方、下方、左侧和右侧正方形的索引?
因此,例如:
A = { 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 }
代表这个板子
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
假设我目前在董事会的索引#8 上(值 = 7)。我怎样才能得到 4 (value = 3) , 5 (value = 6), 10 (value = 11) 的索引,并意识到没有正确的正方形,因为它位于棋盘的右侧边缘。
我知道我需要使用一些模数数学,但我没有想出正确的方法来获取相邻正方形的索引。
我在想类似...
if ((i % 4) + 1 < 3) right = i + 1;
if ((i % 4) - 1 > 0) left = i - 1;
if ((i % 4) + 4 < 15) bottom = i + 4;
if ((i % 4) - 4 > 0 ) top = i - 4;
这似乎是正确的方法吗?