检查矩阵中单元格值的邻居

Checking the neighbours of a cell value from a matrix

我有一个充满 * and - 的矩阵,其中 * 代表一个病毒,- 一个病毒的空闲点,我必须在我的矩阵中检查每个病毒的邻居病毒,一个有效的邻居是另一个病毒而不是一个自由点,以便建立它们的数量。我要检查的邻居是 [row + 1][col][row - 1][col][row][col + 1][row][col - 1],总共四个邻居。我创建了一个函数来检查并涵盖所有情况,例如,如果我正在检查的元素是矩阵的一个角。我想出了一个非常长的 80 行函数,其中有很多 if 语句。 除了必须编写 20 if 语句之外,是否有一种有效的方法(意味着行数)来检查所有这些?

https://pastebin.com/2f7YpreZ 这是我写的代码

您可以做的是合并导致相同结果的 if 语句。这将导致更短(且更易读)的代码,并且在某些情况下可以提高性能。

例如,如果您有:

if([row - 1][col])
    // do A
else if([row][col + 1])
    // do B
else if([row + 1][col])
    // do A

那你可以这样写:

if([row - 1][col] || [row + 1][col])
    // do A
else if([row][col + 1])
    // do B

这样做,如果您觉得您的代码需要进一步改进,请 post 在 Code Review