Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 如何检查数组中多个值之间的相等性?_Javascript_Arrays_Tic Tac Toe - Fatal编程技术网

Javascript 如何检查数组中多个值之间的相等性?

Javascript 如何检查数组中多个值之间的相等性?,javascript,arrays,tic-tac-toe,Javascript,Arrays,Tic Tac Toe,因此,我正在尝试构建一个tic-tac-toe游戏,让用户与计算机上的一台机器进行游戏。我想让这些数组检查一个成功的方块序列,这将表明有人赢得了比赛。我想知道这种检查数组不同部分并比较它们是否相等的方法是否有效 function winner() { var blocks = document.getElementsByClassName('block'); for (var i = 0; i < blocks.length; i++) { if (bloc

因此,我正在尝试构建一个tic-tac-toe游戏,让用户与计算机上的一台机器进行游戏。我想让这些数组检查一个成功的方块序列,这将表明有人赢得了比赛。我想知道这种检查数组不同部分并比较它们是否相等的方法是否有效

function winner() {
    var blocks = document.getElementsByClassName('block');
    for (var i = 0; i < blocks.length; i++) {
        if (blocks[0, 1, 2].value == 'X' || blocks[0, 3, 6].value == 'X' || blocks[2, 5, 8].value == 'X' || blocks[6, 7, 8].value == 'X' || blocks[2, 4, 6].value == 'X' || blocks[0, 4, 8].value == 'X') {
            alert('Player X Wins!!');
            blocks.classList.toggle('block');
            player === 1;
        }
    };

    var blocks = document.getElementsByClassName('block');
    for (var i = 0; i < blocks.length; i++) {
        if (blocks[0, 1, 2].value == 'O' || blocks[0, 3, 6].value == 'O' || blocks[2, 5, 8].value == 'O' || blocks[6, 7, 8].value == 'O' || blocks[2, 4, 6].value == 'O' || blocks[0, 4, 8].value == 'O') {
            alert('Player O Wins!!');
            blocks.classList.toggle('block');
            player === 1;
        }

    }
}
函数winner(){
var blocks=document.getElementsByClassName('block');
对于(变量i=0;i
另外,这是决定轮到谁的可行方法吗?我在使用这个类切换机制时取得了一些成功,可以确定在开始时选择了哪些块,但现在似乎无法使其工作

到目前为止,这是更改转弯和换班的代码,但我相信有更好的方法:

var player === 1

var blocks = document.getElementsByClassName('block');

function turn() {
    if (player === 1) {
        player -= 1;
        winner();
        var buttons = document.getElementsByTagName("button");
        console.log(buttons.length);
        for (var i = 0; i < buttons.length; i++) {
            buttons[i].addEventListener("click", function(e) {
                var number = (this.getAttribute('name'));
                var chosenblock = document.getElementsByName(number)[0];
                chosenblock.classList.toggle('chosen');
                chosenblock.value = 'X';
                // console.log('click!');
            });
        }
    } else {
        player += 1;
        winner();
        var computer;
        computer = function() {
                var computerchoice = Math.floor(Math.random() * (9) + 1);

                function compselected(number) {
                    //How to make number equal to the id of the selected block?
                    var chosenblock = document.getElementsByName(number)[0];
                    chosenblock.classlist.toggle('picked');
                }
var player===1
var blocks=document.getElementsByClassName('block');
函数turn(){
如果(玩家===1){
玩家-=1;
获胜者();
var buttons=document.getElementsByTagName(“按钮”);
控制台。日志(按钮。长度);
对于(变量i=0;i

非常感谢各位提供的任何建议!这里是有帮助的if。

既然您已经在使用JSFIDLE,我建议您单击标记为“JSHint”的按钮并尝试至少消除您所有的语法错误。除了空格和随机分号,我将清理。对赢家检查或回合切换有什么想法吗?第一行应该是
var player=1;
triple equals仅供比较。既然您已经在使用jsfiddle,我建议您单击标记为“JSHint”的按钮并尝试至少消除所有语法错误。除了空格和随机分号之外,我会清理。关于赢家检查或回合切换有什么想法吗?第一行应该是
var player=1;
triple equals仅供比较。