嘿,我最近用 JavaScript写了这个相当简单的生活游戏。
在这个脚本中,我检查给定单元格周围的所有单元格,我目前通过八个if 语句执行此操作。
它有效,但感觉错误且硬编码。会不会有一种更快、更有效的方法来做到这一点?还是大量的 if 语句是唯一的方法?
嘿,我最近用 JavaScript写了这个相当简单的生活游戏。
在这个脚本中,我检查给定单元格周围的所有单元格,我目前通过八个if 语句执行此操作。
它有效,但感觉错误且硬编码。会不会有一种更快、更有效的方法来做到这一点?还是大量的 if 语句是唯一的方法?
如何创建一个偏移数组并循环遍历该数组?
var offsets = [{dx:1,dy:1},{dx:0,dy:1}, ...
您可以对其进行优化,例如,不要多次检查 x > 0,而是只放置一个包装另一个 ifs
if(x > 0) {
if(cells[x - 1][y])
alive++;
if(y > 0 && cells[x - 1][y - 1])
alive++;
if(y < edgeAmount && cells[x - 1][y + 1])
alive++;
}
您可以创建一个在某些步骤后更新的查找表,因此您可以加快计算速度