0

私は非常にシンプルなJavaScriptの三目並べゲームを持っていますが、これは現在うまく機能しているようです。これは、XとOを保持する配列で構成され、同じスポットを2回選択することはできません。コンピューターの回転は、配列内でまだ開いている生成された乱数に基づいています。

私が残した唯一の問題は、勝者が宣言されたときに何をすべきか(コンピューターまたは人間)です。

その時点で、ユーザーがボードをリセットして再開することを選択するまで、ゲームの実行中のJavaScriptを終了する必要があります。

これには、私が苦労している2つの詳細が含まれます。

  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 に答える