我尝试创建一个2D数组,并在对角线上放置四个“X”并创建一个双循环来检测和计算X的数量,但不是只显示一个“玩家1赢”,而是显示其中的10个。
var creatematrix = function (nbRang, nbColumn) {
var result = Array(nbRang);
for (var i=0; i<nbRang; i++) {
result[i] = Array(nbColumn);
}
return result;
};
var m = creatematrix(6, 7);
m[4][1] = "X";
m[3][2] = "X";
m[2][3] = "X";
m[1][4] = "X";
var sumX = 0;
for(var k = 5; k >= 0 ; k--){
for(var i = 0 ; i<= 6; i++){
if(m[k][i]== "X" ){
sumX += 1;
}
else if(sumX == 4){
alert("player 1 won");
}
}
}
答案 0 :(得分:0)
您的总循环执行42次(6x7)。显然,在第32次迭代中,sumX
达到值4.因此,在此之后的所有10次,alert
都会被执行。
答案 1 :(得分:0)
一旦你发现了胜利者,你就不会停止你的循环。
您可以尝试以下选项之一:
为for
循环检查添加条件,看看您是否已经sumX == 4
return
答案 2 :(得分:0)
我假设问题是如何让代码只显示警报一次 - 你应该设置一个标志,用户有一个标志,当游戏结束时,最后使用警报。
现在警报在循环中,因此每次循环都会触发警报。