0

我有一个非常简单的 JavaScript 井字游戏,目前似乎运行良好。它由一个包含 X 和 O 的数组组成,不允许两次选择相同的点,并且计算机轮流基于生成的随机数,该随机数在数组中仍然是开放的。

我唯一剩下的问题是当宣布获胜者(计算机或人类)时该怎么办。

那时,我需要结束运行游戏的 JavaScript,直到用户选择重置棋盘并重新开始。

这需要我努力解决的两个细节:

  1. 一旦宣布获胜者,我需要井字游戏板的扇区变为“不可点击”或不再注册点击。目前,即使在决定了一场比赛的输赢之后,如果还有剩余空间,则用户可以继续在棋盘上标记这些空间。

  2. 解决上述问题应该有助于部分解决这个问题,但一旦宣布游戏的获胜者,完全停止游戏也可能会很好。目前,再次因为用户可以继续点击开放空间(如果存在),只要棋盘上存在胜利,计数器(计算用户的胜利)将继续增加。同样,通过解决问题 1,也可以传递地解决这个问题,因为点击不起作用,因此计数器不会增加。

4

1 回答 1

0

如果结束游戏只是让方块不响应点击,那么您可以创建一个绑定到框的点击事件的函数。

例如,如果每个盒子都是一个带有“盒子”类的链接,那么你可以这样做:

var boxes = document.getElementsByClassName('box');
for(var key in boxes) { 
  boxes[key].onclick = function(e) {
  e.preventDefault();
}

或者,使用 jQuery

$(document).on("click", ".boxes", function(e) {
   e.preventDefault();
}

找到获胜者后,您将这样做:

var endGame = function() {
   $(document).on("click", ".boxes", function(e) {
      e.preventDefault();
   }
}

if ( there is a winner ) {
    endGame();
}
于 2012-11-14T04:35:13.687 回答