我遇到一个JavaScript方法的问题我正在制作的游戏类似于流行的游戏2048,但是有一个任何大小的棋盘。
this.board是游戏对象的属性,是一个n或n数组,其中包含0或数字。 this.board [行] [列]
例如:
SIZE_OF_BOARD = 5; this.board [i]在方法结束时可能是[0,0,2,4,0] this.board [i]的所需外观将是[0,0,0,2,4],但是目前它是[0,0,0],2和4没有被推到列内部堆叠。
我的问题是在列循环中没有任何东西被推送到堆栈。
game.prototype.right = function () {
for(var i = 0; i < SIZE_OF_BOARD; i++){ // row loop
var zeroCount = 0;
var temp = 0;
var stack = [];
console.log(this.board[i]);
for(var j = 0; j < SIZE_OF_BOARD; j++){ // column loop
if(this.board[i][j] == 0){
zeroCount++;
} else if (temp == this.board[i][j] && temp != 0){
stack.push(temp*2);
zeroCount++;
temp = 0;
} else if (temp!=0){
temp = this.board[i][j];
stack.push(temp);
}
}
console.log(stack);
while(zeroCount > 0){ // add the 0's to the left of the stack.
stack.unshift(0);
zeroCount--;
}
this.board[i] = stack;
console.log(stack);
}
// this.next();
}
知道出了什么问题吗?