Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Tic Tac Toe-检查胜利(香草JS)_Javascript_Tic Tac Toe - Fatal编程技术网

Javascript Tic Tac Toe-检查胜利(香草JS)

Javascript Tic Tac Toe-检查胜利(香草JS),javascript,tic-tac-toe,Javascript,Tic Tac Toe,我做了一个嵌套数组来模拟表中的情况,它似乎工作得很好。 我的目标是在这个阵列上运行每一步,以检查是否有一个胜利。 它分为三个部分:列检查器、行检查器和倾斜检查器,但由于某些原因,我没有看到警报“赢” 非常感谢 相关代码: Html 香草JS let table = document.getElementsByTagName("table")[0]; let saveTypeGame; let friendTurn = 0; let arr = [[],[],[]]; let colWin = 0

我做了一个嵌套数组来模拟表中的情况,它似乎工作得很好。 我的目标是在这个阵列上运行每一步,以检查是否有一个胜利。 它分为三个部分:列检查器、行检查器和倾斜检查器,但由于某些原因,我没有看到警报“赢”

非常感谢

相关代码: Html

香草JS

let table = document.getElementsByTagName("table")[0];
let saveTypeGame;
let friendTurn = 0;
let arr = [[],[],[]];
let colWin = 0;

 if(saveTypeGame=="friend")
        {
            table.addEventListener("click", function (e1) {
                if (friendTurn%2 == 0)
                {
                    e1.target.classList.add("cross");
                    arr[parseInt(e1.target.cellIndex)][parseInt(e1.target.parentElement.rowIndex)] = "cross";
                }

                else {
                    e1.target.classList.add("circle");
                    arr[parseInt(e1.target.cellIndex)][parseInt(e1.target.parentElement.rowIndex)] = "circle";
                }

                //columns winning
                for(let z = 0; z<2; z++)
                {
                    //columns winning
                    if(arr[z][0] == arr[z][1] == arr[z][2])
                    {
                        alert("win");
                    }

                    //rows winning
                    if(arr[0][z] == arr[1][z] == arr[2][z])
                    {
                        alert("win");
                    }

                    //slant winning
                    if(arr[0][0] == arr[1][1] == arr[2][2])
                    {
                        alert("win");
                    }
                }

                friendTurn++;
            })
        }

(功能(){
//您的页面初始化代码在这里
//DOM将在此处提供
let table=document.getElementsByTagName(“表”)[0];
让我们一起玩游戏;
让friendTurn=0;
设arr=[]、[]、[];
设colWin=0;
if(true)//saveTypeGame==“朋友”)
{
表.addEventListener(“单击”,函数(e1){
如果(friendTurn%2==0)
{
e1.target.classList.add(“交叉”);
arr[parseInt(e1.target.cellIndex)][parseInt(e1.target.parentElement.rowIndex)]=“交叉”;
}
否则{
e1.target.classList.add(“圈”);
arr[parseInt(e1.target.cellIndex)][parseInt(e1.target.parentElement.rowIndex)]=“圆圈”;
}
//专栏获奖

对于(设z=0;z),您不能像以前那样按顺序比较项目

if(arr[0][0] == arr[1][1] == arr[2][2]) // don't work
相反,您需要链接比较:

if ( arr[0][0] == s && 
     arr[1][1] == s &&
     arr[2][2] == s)
let table=document.getElementsByTagName(“表”)[0];
让friendTurn=0;
设arr=[
[],
[],
[]
];
表.addEventListener(“单击”,函数(e1){
设cellIndex=parseInt(e1.target.cellIndex);
//检查是否未单击单元格
如果(!e1.target.classList.contains)(“交叉”)&&
!e1.target.classList.contains(“圆”)&&
//检查边界单击
arr[cellIndex]!==未定义){
让我们“圈”;
如果(friendTurn%2==0)s=“交叉”;
friendTurn++;
让rowIndex=parseInt(e1.target.parentElement.rowIndex);
arr[cellIndex][rowIndex]=s;
e1.target.classList.add(s);
对于(z=0;z=9)重置(“绘制”、“无人”);
}
});
功能复位(p,s){
console.clear();
控制台日志(s,“win”,p);
friendTurn=0;
arr=[
[],
[],
[]
];
for(让td of document.querySelectorAll(“td”)){
td.类列表。删除(“圆圈”、“十字”);
}
}
.cross{
背景图像:url(“https://via.placeholder.com/90/444/fff/?text=X");
背景尺寸:封面;
}
.圆圈{
背景图像:url(“https://via.placeholder.com/90/bbb/000/?text=O");
背景尺寸:封面;
}
桌子{
边界塌陷:塌陷;
宽度:10em;
高度:10公分;
保证金:自动;
}
运输署{
边框:5px纯黑;
}

您不能像以前那样按顺序比较项目

if(arr[0][0] == arr[1][1] == arr[2][2]) // don't work
相反,您需要链接比较:

if ( arr[0][0] == s && 
     arr[1][1] == s &&
     arr[2][2] == s)
let table=document.getElementsByTagName(“表”)[0];
让friendTurn=0;
设arr=[
[],
[],
[]
];
表.addEventListener(“单击”,函数(e1){
设cellIndex=parseInt(e1.target.cellIndex);
//检查是否未单击单元格
如果(!e1.target.classList.contains)(“交叉”)&&
!e1.target.classList.contains(“圆”)&&
//检查边界单击
arr[cellIndex]!==未定义){
让我们“圈”;
如果(friendTurn%2==0)s=“交叉”;
friendTurn++;
让rowIndex=parseInt(e1.target.parentElement.rowIndex);
arr[cellIndex][rowIndex]=s;
e1.target.classList.add(s);
对于(z=0;z=9)重置(“绘制”、“无人”);
}
});
功能复位(p,s){
console.clear();
控制台日志(s,“win”,p);
friendTurn=0;
arr=[
[],
[],
[]
];
for(让td of document.querySelectorAll(“td”)){
td.类列表。删除(“圆圈”、“十字”);
}
}
.cross{
背景图像:url(“https://via.placeholder.com/90/444/fff/?text=X");
背景尺寸:封面;
}
.圆圈{
背景图像:url(“https://via.placeholder.com/90/bbb/000/?text=O");
背景尺寸:封面;
}
桌子{
边界塌陷:塌陷;
宽度:10em;
高度:10公分;
保证金:自动;
}
运输署{
边框:5px纯黑;
}


“它不起作用”不是诊断性的;请查看页面。@DaveNewton EditedDid您是否尝试使用“==”而不是“==”?您只检查了一个倾斜。倾斜检查不应该在循环中。一旦您找到一个赢的,您应该打破循环,无需进一步检查。“它不起作用”不是诊断性的;请查看页面。@DaveNewton EditedId您是否尝试使用“===”而不是“==”?您只检查了一个倾斜。倾斜检查不应该在循环中。一旦您找到一个胜利,您应该打破循环,无需进一步检查。