检查给定点周围所有点的有效方法

时间:2011-05-29 10:48:42

标签: javascript optimization canvas points

嘿,我最近在JavaScript中写了这个相当简单的game of life

在这个脚本中,我检查给定单元格周围的所有单元格,我目前通过 8 if语句执行此操作。

它有效,但感觉不对,硬编码。会不会有更快,更有效的方法呢?或者大量的if语句是唯一的方法吗?

3 个答案:

答案 0 :(得分:2)

如何创建偏移数组并循环遍历数组?

var offsets = [{dx:1,dy:1},{dx:0,dy:1}, ...

答案 1 :(得分:0)

您可以优化它,例如,而不是检查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++;
}

答案 2 :(得分:0)

您可以创建一个在某些步骤后更新的查找表,以便加速计算