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

javascript:如何在游戏中交换玩家回合?,javascript,angularjs,tic-tac-toe,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

我正在进行双人游戏,我需要在每次移动后交换球员

目前我有以下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);
        }
    });
}
问题是,移动的玩家在对手计算其移动之前不会被抽签


如何使其异步?

运行递归函数时,浏览器将挂起。javascript函数
setTimeout(…)
将把控制权短暂地传递回浏览器,以便呈现您的电路板,然后在一段时间后,它将恢复递归调用
play(…)

比如说:

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

因此,浏览器使用该标记呈现电路板,然后在100毫秒后继续调用下一层的方法播放。当您运行递归函数时,浏览器将挂起。javascript函数
setTimeout(…)
将把控制权短暂地传递回浏览器,以便呈现您的电路板,然后在一段时间后,它将恢复递归调用
play(…)

比如说:

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

因此,浏览器用标记呈现棋盘,然后在100毫秒后继续调用下一层的方法play。

什么是
player.play
?您似乎向该函数传递了回调,它是异步的吗?另外,是什么触发了
play
调用?绘图代码何时执行?player.play是什么?您似乎向该函数传递了回调,它是异步的吗?另外,是什么触发了
play
调用?绘图代码何时执行?