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。一些帮助会很棒。谢谢。
最佳答案
你不能像这样组合条件检查。当您执行 a === b === c
时,您所做的是比较 a === b
表达式的结果值(这将是 true
[如果相同]或 false
[如果不同]),值为 c
。
相反,您需要将它们与 &&
结合起来,例如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";
}
// ...
<小时/>
旁注:如果您从附加到 if
的 block 返回
,则无需在下一个 之前添加
。这是无害的,但没有意义。else
>如果
关于javascript - Tic Tac Toe 获胜功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44485531/