我一直致力于基于磁贴的游戏,但在玩了大约一分钟后,一些磁贴只会改变为不同的值。我发现负责突然改变的代码是这部分:
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
我真的无法想出为什么会这样做,有人可以帮助我吗?
提前致谢。