首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery Tic Tac Tac脚趾问题

jQuery Tic Tac Tac脚趾问题
EN

Stack Overflow用户
提问于 2015-05-04 14:33:41
回答 1查看 121关注 0票数 1

对jQuery来说是新手。不知道为什么这个代码不能证明胜利..。

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

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

表在代码的基础上堆叠。我首先粘贴了jquery,因为我相信这就是问题所在,因为我可以用值填充方格,但它并没有显示出胜利。

以下是代码:

代码语言:javascript
复制
<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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-04 14:48:19

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

当只使用1等于符号时,您正在为if语句中的数组分配checkPattern。此外,使用jQuery选择器$(ID)返回一个jQuery对象,而不是标记中的内容。

试一试:

代码语言:javascript
复制
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循环,而不是增强的循环,我就能够让它工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30032818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档