【问题标题】:Tic Tac Toe if no player is a winner?井字游戏如果没有玩家是赢家?
【发布时间】:2017-02-27 06:03:32
【问题描述】:

我如何确定是否平局? (初学者编码问题) 我可以确定谁是赢家,但似乎无法弄清楚如何实施抽奖部分!请帮忙

这是我的代码不是最漂亮的,请告诉我如何改进

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;



    }
}

});

【问题讨论】:

  • 检查游戏是否已经结束(所有方格都被占用)但没有玩家获胜。
  • 为什么这被否决了?
  • @Lamar Smith 我知道还有另一种方法,但它与您当前的实现非常不同。

标签: javascript jquery function frontend boolean-logic


【解决方案1】:

如果你有一个所有方格都有的类.square,那么你可以在该类上运行forEach 循环,如$(.square).forEach(function(){...,它检查方格是否为空。如果没有一个正方形是空的,那么布尔值game_still_on 将是错误的,并且在您的同步循环完成后,您将启动抽奖游戏程序。

【讨论】:

    猜你喜欢
    • 2022-12-16
    • 1970-01-01
    • 2017-02-16
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多