Tic Tac Toe胜利功能

时间:2017-06-11 15:30:00

标签: javascript arrays tic-tac-toe

function checkWin(){
if (arro[0] === arro[1] === arro[2] === 1 || arro[3] === arro[4] === arro[5] === 1 || arro[6] === arro[7] === arro[8] === 1 || arro[0] === arro[4] === arro[8] === 1 || arro[2] === arro[4] === arro[6] === 1 || arro[0] === arro[3] === arro[6] === 1 || arro[1] === arro[4] === arro[7] === 1 || arro[2] === arro[5] === arro[8] === 1) {
    console.log("O Won");
    return "O";
}
else if (arrx[0] === arrx[1] === arrx[2] === 1 || arrx[3] === arrx[4] === arrx[5] === 1 || arrx[6] === arrx[7] === arrx[8] === 1 || arrx[0] === arrx[4] === arrx[8] === 1 || arrx[2] === arrx[4] === arrx[6] === 1 || arrx[0] === arrx[3] === arrx[6] === 1 || arrx[1] === arrx[4] === arrx[7] === 1 || arrx[2] === arrx[5] === arrx[8] === 1){
    console.log("X Won");
    return "X";
}
else
    return "notwin"; }

这里,arro是O的矩阵,arrx是X的数组。 在控制台中运行它会每次都返回notwin。一些帮助会很棒。感谢。

1 个答案:

答案 0 :(得分:2)

你不能像这样结合条件检查。当您执行a === b === c时,您正在做的是比较a === b表达式的结果值(true [如果它们相同]或{ {1}} [如果不是]),其值为false

相反,您需要将它们与c结合使用,例如&&

E.g:

a === b && b === c

附注:如果您function checkWin() { if ((arro[0] === arro[1] && arro[1] === arro[2]) || (arro[3] === arro[4] && arro[4] === arro[5]) || /*...and so on...*/ ) { console.log("O Won"); return "O"; } // ... 所附的块中return,那么下一个if之前就不需要else。它无害,但毫无意义。