javascript:如何在游戏中交换玩家?

时间:2013-04-24 15:43:59

标签: javascript angularjs tic-tac-toe

我正在进行两场比赛,我需要在每次移动后交换球员。

目前我有这个javascript:

var play = function(player, opp) {
    var index;
    player.play(function(move) {
        index = move;
        board.board[index][1] = player.mark;
        if (board.weHaveWinner()==undefined||!board.isFull()) {
            play(opp,player);
        }
    });
}

在对手计算移动之前,移动的玩家不会被拉出的问题。

如何使这种异步?

1 个答案:

答案 0 :(得分:1)

运行递归函数时浏览器会挂起。 javascript函数setTimeout(...)会将控制权简单地传回浏览器以呈现您的电路板,然后一段时间后它将以递归方式调用play(...)

https://developer.mozilla.org/en-US/docs/DOM/window.setTimeout

这样的事情:

window.setInterval(play(opp,player),100);

因此,浏览器使用标记呈现电路板,然后在100毫秒后继续调用方法播放的下一层。