Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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 jQuery Tic Tac Toe问题_Javascript_Jquery - Fatal编程技术网

Javascript jQuery Tic Tac Toe问题

Javascript jQuery Tic Tac Toe问题,javascript,jquery,Javascript,Jquery,jQuery的新特性。不确定为什么此代码无法显示wins 我有两个单击函数,一个用于X,另一个用于O 然后我有一个checkBoard函数,它通过一个名为board的数组来检查一个名为wins的数组,以查找匹配的wins组合 该表堆叠在jquery代码的顶部。我首先粘贴了jquery,因为我认为这就是问题所在,因为我可以用值填充方框,但它没有显示胜利 代码如下: <script> var count = 0 $('td').on('click', f

jQuery的新特性。不确定为什么此代码无法显示wins

我有两个单击函数,一个用于X,另一个用于O

然后我有一个checkBoard函数,它通过一个名为board的数组来检查一个名为wins的数组,以查找匹配的wins组合

该表堆叠在jquery代码的顶部。我首先粘贴了jquery,因为我认为这就是问题所在,因为我可以用值填充方框,但它没有显示胜利

代码如下:

<script>
        var count = 0

        $('td').on('click', function (){
         if(count % 2 === 0){
            $(this).text("X");
        } else {
            $(this).text("O");
        }
            count++
            checkBoard();
        });

        function checkBoard(){

            var wins = [[$("#0"),$("#1"),$("#2")], [$("#3"),$("#4"),$("#5")], [$("#6"),$("#7"),$("#8")], [$("#0"),$("#3"),$("#6")], [$("#1"),$("#4"),$("#7")], [$("#2"),$("#5"),$("#8")], [$("#0"),$("#4"),$("#8")], [$("#6"),$("#4"),$("#2")]]
            var board = [[$("#0"), $("#1"), $("#2")], [$("#3"),$("#4"),$("#5")], [$("#6"), $("#7"), $("#8")]]  


            for(w in this.wins){
             var pattern = this.wins[w];
                var checkPattern = this.board[pattern[0]] + this.board[pattern[1]] + this.board[pattern[2]];
                    if (checkPattern = ["X","X","X"]) {
                        return "X Wins!";
                        console.log("X");
                    } else if (checkPattern = ["O","O","O"]) {
                        return "O Wins!";
                        console.log("O");
                    }
            }
        }

        </script>

<table> 
        <tr>
            <td id="0"></td>
            <td id="1"></td>
            <td id="2"></td>
        </tr>
        <tr>
            <td id="3"></td>
            <td id="4"></td>
            <td id="5"></td>
        </tr>
        <tr>
            <td id="6"></td>
            <td id="7"></td>
            <td id="8"></td>
        </tr>
    </table>

td {
    width: 100px;
    height: 100px;
    border: 2px solid black;
    font-size: 5em;
    text-align: center;
}

变量计数=0
$('td')。在('click',函数(){
如果(计数%2==0){
$(此).text(“X”);
}否则{
$(本).text(“O”);
}
计数++
棋盘();
});
功能检查板(){
(3)2号““,[$(3)3号“,[$(3)3号“,,[$(3)3号“,,,[$(3)3号“,,$(4号“,,,((“4”)4号“,,((“5”)5号“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,$(“5”),$(“8”),[$(“0”),$(“4”),$(“8”),[$(“6”),$(“4”),$(“2”)]
风险值委员会=[$(“#0”)、$(“#1”)、$(“#2”)、[$(“#3”)、$(“4”)、$(“5”)、[$(“6”)、$(“7”)、$(“8”)]
for(在本例中为w.wins){
var pattern=this.wins[w];
var checkPattern=this.board[pattern[0]]+this.board[pattern[1]]+this.board[pattern[2]];
if(checkPattern=[“X”、“X”、“X”]){
返回“X赢!”;
控制台日志(“X”);
}else if(checkPattern=[“O”、“O”、“O”]){
返回“胜利!”;
控制台日志(“O”);
}
}
}
运输署{
宽度:100px;
高度:100px;
边框:2件纯黑;
字号:5em;
文本对齐:居中;
}

问题似乎在for循环中。您甚至不需要board数组,只需检查wins数组中每个jQuery对象的值,看看是否有win

当use only use 1等号时,在if语句中将CHECKPATTER分配给数组。另外,使用jQuery选择器$(ID)返回jQuery对象,而不是标记中的内容

请尝试以下方法:

for (var i=0; i<wins.length; i++) {
                var w = wins[i];
                var checkXwin = w[0].text() == "X" && w[1].text() == "X" && w[2].text() == "X";
                var checkOwin = w[0].text() == "O" && w[1].text() == "O" && w[2].text() == "O";
                if (checkXwin) {
                    console.log("X");
                    return "X Wins!";
                } else if (checkOwin) {
                    console.log("O");
                    return "O Wins!";
                }
            }

for(var i=0;i以更改id开始。在HTML中,id以数字开始无效。更改var以该数字开始。wins与Board相同这是我使用代码时收到的错误:未捕获类型错误:w[0]。val不是函数这是新错误:未捕获类型错误:w[0]。文本不是函数