javascript数组中的项目突然改变,没有任何理由

时间:2017-09-03 14:10:26

标签: javascript multidimensional-array

我一直致力于基于磁贴的游戏,但在玩了大约一分钟后,一些磁贴只会改变为不同的值。我发现负责突然改变的代码是这部分:

console.table(field);
console.table(ct);
var xcoord = x;
var ycoord = y;
if(y < 0) {
    redrawField();
    gameOver();
    return;
}
for(var i = 0; i < ct.length; i++) {
    for(var j = 0; j < ct[0].length; j++) {
        if(ct[i][j] == 1) {
            field[ycoord+i][xcoord+j] = index;
        }
    }
}
console.table(field);

field变量是一个包含&#39;状态&#39;的二维数组。每个瓷砖必须将ct变量复制到x和y坐标上的field。 (该字段为垂直,因此第一个索引是y坐标(或行),第二个索引是x坐标(或列))。

通常这种方法很好,所以当字段是

0, 0, 0, 0, 0
0, 0, 0, 0, 0
0, 0, 0, 0, 0
0, 0, 0, 0, 0

ct是

0, 0, 1
1, 1, 1

,x和y为2,索引= 3, 结果是:

0, 0, 0, 0, 0
0, 0, 0, 0, 0
0, 0, 0, 0, 3
0, 0, 3, 3, 3

但有时它会随机给出:

0, 0, 0, 0, 3
0, 0, 0, 0, 3
0, 0, 0, 0, 3
0, 0, 3, 3, 3

我真的无法想出为什么会这样做,有人可以帮助我吗?

提前致谢。

0 个答案:

没有答案