我正在尝试复制 Minesweeper,但在计算属于地雷的邻居时遇到了问题。这似乎是一件很容易实现的事情,但由于某种原因,我并没有在任何地方都得到想要的结果。我有一个表示每个图块的一维整数数组。考虑到它可能具有可变的网格大小,我想要一种方法来分别获取图块的每个邻居。这是我的代码的样子:
int num = 0;
if (i + 1 < 16 && graph[i + 1] == -1)
num++;
if (i - 1 >= 0 && graph[i - 1] == -1)
num++;
if (i + 3 < 16 && graph[i + 3] == -1)
num++;
if (i - 3 >= 0 && graph[i - 3] == -1)
num++;
if (i + 4 < 16 && graph[i + 4] == -1)
num++;
if (i - 4 >= 0 && graph[i - 4] == -1)
num++;
if (i + 5 < 16 && graph[i + 5] == -1)
num++;
if (i - 5 >= 0 && graph[i - 5] == -1)
num++;
return num;
而且我没有得到我想要的最左边和最右边的瓷砖的结果。有时,最下面和最上面的瓷砖也会出现问题。我的代码使用了一个固定大小为 4x4(int[16]) 的网格(显然我称之为图形 :))。
提前致谢。