Javascript 二维数组读取问题
我正试图用javascript编写康威的人生游戏 这些规则是:Javascript 二维数组读取问题,javascript,arrays,multidimensional-array,conways-game-of-life,Javascript,Arrays,Multidimensional Array,Conways Game Of Life,我正试图用javascript编写康威的人生游戏 这些规则是: 如果一个死像素恰好被三个活像素包围,它将变为活像素 如果一个活动像素被少于两个或三个以上的活动像素包围,它将消亡 我已经将这些规则编程到一个2d数组中,但是,有时当一个死像素被不到三个活像素包围时,它将变为活像素,有时应该死的像素将保持活像素 规则中的镜像对象应输出相同但镜像的结果,并且与我的代码不一致。这让我相信检查探测的代码是错误的,而不是检查给定像素周围的活动像素数(计数器)的代码。然而,我在这里找不到错误。也许我太累了,错过
for (var x = 0; x < xPixels; x++) {
for(var y = 0; y < yPixels; y++){
counter = 0;
if(y+1<yPixels){ //not below screen
if(x-1>=0){ if(pixels[x-1][y+1]) {counter++;}} //bottom left
if(pixels[x+0][y+1]) {counter++;} //bottom middle
if(x+1<xPixels){ if(pixels[x+1][y+1]) {counter++;}} //bottom right
} //in-line
if(x-1>=0){ if(pixels[x-1][y+0]) {counter++;}} //left
if(x+1<xPixels){ if(pixels[x+1][y+0]) {counter++;}} //right
if (y-1>=0){ //not above screen
if(x-1>=0){ if(pixels[x-1][y-1]) {counter++;}} //top left
if(pixels[x+0][y-1]) {counter++;} //top middle
if(x+1<xPixels){ if(pixels[x+1][y-1]) {counter++;}} //top right
}
if (pixels[x][y]){ //alive
if(counter<2 || counter>3) {
newPixels[x][y]=false; //dies
} else {
newPixels[x][y]=true; //stays alive
}
} else { //dead
if(counter==3){
newPixels[x][y]=true; //born
} else {
newPixels[x][y]=false; //stays dead
}
}
}
}
for(var x=0;x=0){if(像素[x-1][y-1]){counter++;}}//左上角
if(像素[x+0][y-1]){counter++;}//中上
如果(x+1将(var x=0;x