我创建的算法(康威生命游戏规则的实现)与康威的 GoL 不匹配。我已经尝试了我能做的所有事情,但它就是不匹配。
此外,如果有人知道如何将它变成一个无限平面或自行包裹,我很想看到它用我的代码实现!
运行 JSFiddle:http: //jsfiddle.net/jGkKF/2/
相关代码:
检查周围细胞是否有活细胞:(第 28 行)
var x2 = x+1, x3 = x-1, y2 = y+1, y3 = y-1; // Math
if(tC[x][y3] !== undefined && tC[x][y3]) ne++; // T
if(tC[x][y2] !== undefined && tC[x][y2]) ne++; // TR
if(tC[x2] !== undefined) {
if(tC[x2][y]) ne++; // R
if(tC[x2][y3] !== undefined && tC[x2][y3]) ne++; // BR
if(tC[x2][y2] !== undefined && tC[x2][y2]) ne++; // B
}
if(tC[x3] !== undefined) {
if(tC[x3][y]) ne++; // BL
if(tC[x3][y3] !== undefined && tC[x3][y3]) ne++; // L
if(tC[x3][y2] !== undefined && tC[x3][y2]) ne++; // TL
}
算法:(第 50 行)
if(cell && (ne < 2 || ne > 3)) cell = 0; // Over- or under- populated?
else if(!cell && ne == 3) cell = 1; // Give life?