井字游戏不工作(javascript)

井字游戏不工作(javascript),javascript,jquery,Javascript,Jquery,我正在做一个井字游戏,我正处于游戏决定谁赢的时刻。我写了逻辑和所有可能的赢家解决方案,但当我玩游戏时,游戏会宣布一个赢家,即使没有赢家组合。我做错了什么?这是密码笔: 这是我的密码: let player = true; $(document).ready(function () { const square = $('.square'); function display() { if (player === true) { square.on('click'

我正在做一个井字游戏,我正处于游戏决定谁赢的时刻。我写了逻辑和所有可能的赢家解决方案,但当我玩游戏时,游戏会宣布一个赢家,即使没有赢家组合。我做错了什么?这是密码笔:

这是我的密码:

let player = true;

$(document).ready(function () {
  const square = $('.square');

  function display() {
    if (player === true) {
      square.on('click', first);
    } else if (player === false) {
      square.on('click', function () {
        $(this).addClass('second');
      });
    }
  }

  display();

  function first() {
    $(this).addClass('first');
    player = !player;
    if (player === true) {
      $(this).addClass('second');
      alert("Player 2 has made a move.")
    } else {
      alert("Player 1 has made a move.")
    }
    if (($(".one").hasClass('first') && $(".two").hasClass('first') && $(".three").hasClass('first')) || ($(".four").hasClass('first') && $(".five").hasClass('first') && $(".six").hasClass('first')) || ($(".seven").hasClass('first') && $(".eight").hasClass('first') && $(".nine").hasClass('first')) ||
      ($(".one").hasClass('first') && $(".four").hasClass('first') && $(".seven").hasClass('first')) || ($(".two").hasClass('first') && $(".five").hasClass('first') && $(".eight").hasClass('first')) || ($(".three").hasClass('first') && $(".six").hasClass('first') && $(".nine").hasClass('first')) ||
      ($(".one").hasClass('first') && $(".five").hasClass('first') && $(".nine").hasClass('first')) || ($(".three").hasClass('first') && $(".five").hasClass('first') && $(".seven").hasClass('first'))) {
      alert("Player 1 has won the game!");
    }
    if ($(".one").hasClass('second') && $(".two").hasClass('second') && $(".three").hasClass('second') || $(".four").hasClass('second') && $(".five").hasClass('second') && $(".six").hasClass('second') || $(".seven").hasClass('second') && $(".eight").hasClass('second') && $(".nine").hasClass('second') ||
      $(".one").hasClass('second') && $(".four").hasClass('second') && $(".seven").hasClass('second') || $(".two").hasClass('second') && $(".five").hasClass('second') && $(".eight").hasClass('second') || $(".three").hasClass('second') && $(".six").hasClass('second') && $(".nine").hasClass('second') ||
      $(".one").hasClass('second') && $(".five").hasClass('second') && $(".nine").hasClass('second') || $(".three").hasClass('second') && $(".five").hasClass('second') && $(".seven").hasClass('second')) {
      alert("Player 2 has won the game!");
    }
  }
});

在function first中,移动行$this.addClass'first';到else街区。因此,代码将是:

function first() {

    player = !player;
    if (player === true) {
      $(this).addClass('second');
      alert("Player 2 has made a move.")
    } else {
        $(this).addClass('first');
      alert("Player 1 has made a move.")
    }
    if (($(".one").hasClass('first') && $(".two").hasClass('first') && $(".three").hasClass('first')) || ($(".four").hasClass('first') && $(".five").hasClass('first') && $(".six").hasClass('first')) || ($(".seven").hasClass('first') && $(".eight").hasClass('first') && $(".nine").hasClass('first')) ||
      ($(".one").hasClass('first') && $(".four").hasClass('first') && $(".seven").hasClass('first')) || ($(".two").hasClass('first') && $(".five").hasClass('first') && $(".eight").hasClass('first')) || ($(".three").hasClass('first') && $(".six").hasClass('first') && $(".nine").hasClass('first')) ||
      ($(".one").hasClass('first') && $(".five").hasClass('first') && $(".nine").hasClass('first')) || ($(".three").hasClass('first') && $(".five").hasClass('first') && $(".seven").hasClass('first'))) {
      alert("Player 1 has won the game!");
    }
    if ($(".one").hasClass('second') && $(".two").hasClass('second') && $(".three").hasClass('second') || $(".four").hasClass('second') && $(".five").hasClass('second') && $(".six").hasClass('second') || $(".seven").hasClass('second') && $(".eight").hasClass('second') && $(".nine").hasClass('second') ||
      $(".one").hasClass('second') && $(".four").hasClass('second') && $(".seven").hasClass('second') || $(".two").hasClass('second') && $(".five").hasClass('second') && $(".eight").hasClass('second') || $(".three").hasClass('second') && $(".six").hasClass('second') && $(".nine").hasClass('second') ||
      $(".one").hasClass('second') && $(".five").hasClass('second') && $(".nine").hasClass('second') || $(".three").hasClass('second') && $(".five").hasClass('second') && $(".seven").hasClass('second')) {
      alert("Player 2 has won the game!");
    }
  }
});

你能提供相应的HTML和一个失败的例子吗?这是代码笔,请在问题中包括它,最好是在一个可运行的代码段中。什么情况下说有解决方案而实际上没有?