如何检查获胜者tic tac toe jquery?

时间:2017-02-26 01:52:01

标签: javascript jquery

坚持设置tic tac toe up。我有棋盘,转为1号和2号球员,所有箱子#win的可能性,以及它提醒玩家即使他们没有获胜的一些原因。示例player1 = x player2 = o sq1&& sq2&& sq3返回true,因此x-o-x警告为玩家1的赢家

$(document).ready(function() {
    var player = 1;
    $('.box').on('click', function(event) {
        alert('add symbol here');
        var boxSelected = $(this);

        if (boxSelected.hasClass('exes') || boxSelected.hasClass('ohs')) {
            alert('You cant do that! Nice try');
        } else {
            if (player == 1) {
                boxSelected.addClass('exes');
                if (checkIfPlayerWon('exes')) {
                    alert('Congrats! Player ' + player + 'has won the game!');
                } else {
                    player = 2;
                }
            } else {
                boxSelected.addClass('ohs');
                if (checkIfPlayerWon('ohs')) {
                    alert('Congrats! Player ' + player + 'has won the game!');
                } else {
                    player = 1;
                }
            }
        }
    });

    function checkIfPlayerWon(symbol) {
        if ($('.sq1').hasClass(symbol) && $('.sq2') && $('.sq3').hasClass(symbol)) {
            return true;
        } else if ($('.sq4').hasClass(symbol) && $('.sq5') && $('.sq6').hasClass(symbol)) {
            return true;
        } else if ($('.sq7').hasClass(symbol) && $('.sq8') && $('.sq9').hasClass(symbol)) {
            return true;
        } else if ($('.sq1').hasClass(symbol) && $('.sq4') && $('.sq7').hasClass(symbol)) {
            return true;
        } else if ($('.sq2').hasClass(symbol) && $('.sq5') && $('.sq8').hasClass(symbol)) {
            return true;
        } else if ($('.sq3').hasClass(symbol) && $('.sq6') && $('.sq9').hasClass(symbol)) {
            return true;
        } else if ($('.sq3').hasClass(symbol) && $('.sq5') && $('.sq7').hasClass(symbol)) {
            return true;
        } else if ($('.sq1').hasClass(symbol) && $('.sq5') && $('.sq9').hasClass(symbol)) {
            return true;
        } else if ($('.sq3').hasClass(symbol) && $('.sq5') && $('.sq7').hasClass(symbol)) {
            return true;
        } else {
            return false;
        }
    }
});

1 个答案:

答案 0 :(得分:0)

你错过了某些方框上的hasClass(symbol)

全部更改:

if ($('.sq1').hasClass(symbol) && $('.sq2') && $('.sq3').hasClass(symbol)) {
    return true;

if ($('.sq1').hasClass(symbol) && $('.sq2').hasClass(symbol) && $('.sq3').hasClass(symbol)) {
    return true;