【问题标题】:javascript: How to swap players turns in a Game?javascript: 如何在游戏中交换玩家回合?
【发布时间】:2013-04-24 15:43:58
【问题描述】:

我正在开发两人游戏,我需要在每次移动后交换玩家。

目前我有这个 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);
        }
    });
}

在对手计算他的移动之前,移动的玩家不会被绘制。

我怎样才能使这个异步?

【问题讨论】:

  • player.play 是什么意思?您似乎将回调传递给该函数,它是异步的吗?另外,是什么触发了play 调用?
  • 还有,绘制代码什么时候执行?

标签: javascript angularjs tic-tac-toe


【解决方案1】:

运行递归函数时浏览器挂起。 javascript 函数setTimeout(...) 会将控制权短暂地传递给浏览器以渲染您的板,然后在一段时间后它将恢复递归调用play(...)

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

所以是这样的:

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

所以浏览器用标记渲染棋盘,然后在 100 毫秒后继续调用下一层 deep 的方法 play。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    相关资源
    最近更新 更多