Tic Tac Toe如果没有球员是胜利者?

时间:2017-02-27 06:03:33

标签: javascript jquery function frontend boolean-logic

我如何确定是否有平局? (begginer编码器问题) 我可以确定谁是赢家,但似乎无法弄清楚如何实现绘图部分!请帮忙

继承人我的代码不是最漂亮的,让我知道如何改进

var player = 1;

$('.box').on('click', function(event) {


    alert('add symbol here');
    var boxSelected = $(this);

    $("#goAgain").click(function(event) {
        location.reload();
    });



    if (boxSelected.hasClass('exes') || boxSelected.hasClass('ohs')) {
        alert('Sorry, that has already been taken!');
    } 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').hasClass(symbol) && $('.sq3').hasClass(symbol)) {
        return true;

    } else if ($('.sq4').hasClass(symbol) && $('.sq5').hasClass(symbol) && $('.sq6').hasClass(symbol)) {
        return true;

    } else if ($('.sq7').hasClass(symbol) && $('.sq8').hasClass(symbol) && $('.sq9').hasClass(symbol)) {
        return true;

    } else if ($('.sq1').hasClass(symbol) && $('.sq4').hasClass(symbol) && $('.sq7').hasClass(symbol)) {
        return true;

    } else if ($('.sq2').hasClass(symbol) && $('.sq5').hasClass(symbol) && $('.sq8').hasClass(symbol)) {
        return true;

    } else if ($('.sq3').hasClass(symbol) && $('.sq6').hasClass(symbol) && $('.sq9').hasClass(symbol)) {
        return true;
    } else if ($('.sq1').hasClass(symbol) && $('.sq5').hasClass(symbol) && $('.sq9').hasClass(symbol)) {
        return true;
    } else if ($('.sq3').hasClass(symbol) && $('.sq5').hasClass(symbol) && $('.sq9').hasClass(symbol)) {
        return true;

    } else {
        return false;



    }
}

});

1 个答案:

答案 0 :(得分:0)

如果您有一个所有方块都有的.square类,那么您可以在该类上运行forEach循环,如$(.square).forEach(function(){ ...,它会检查该方块是否为空。如果没有方块为空,则布尔值game_still_on将为false,并且在此同步循环完成后,您将启动绘制游戏例程。