javascript - Tic Tac Toe 获胜功能

标签 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。一些帮助会很棒。谢谢。

最佳答案

你不能像这样组合条件检查。当您执行 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/

相关文章:

c - 用静态关键字 : what is static, 声明的数组是指针还是整个数组?

arrays - Perl - 将数组转换为树或为什么变量任意更改

tic-tac-toe - 蒙特卡洛树搜索 - "most promising"移动函数

java - 随机方法 tic tac toe android

javascript - 如何对保存的评论进行编码?

java - 用固定值填充一定比例的 Java 数组

javascript - 将一组平面记录(带有父键)转换为嵌套结构?

javascript:如何在游戏中交换玩家回合?

javascript - 根据值自定义颜色(多次)

javascript - 在 chrome 扩展中尝试 OAuth 时如何解决登录屏幕永无止境的循环?