2017-02-27 11 views
-3

ドローがあるかどうかはどのように判断するのですか? (初心者のコーダーの問題) 私は誰が勝者であるのかを特定することができますが、ドロー部分をどのように実装するのか分からないようです。私は改善できる方法を知ってみましょう、HERESにTic Tac Toeプレーヤーが勝者でない場合は?

私のコードではありませんきれいな助けてください

VARプレイヤー= 1;

$('.box').on('click', function(event) { 


    alert('add symbol here'); 
    var boxSelected = $(this); 

    $("#goAgain").click(function(event) { 
     location.reload(); 
    }); 



    if (boxSelected.hasClass('exes') || boxSelected.hasClass('ohs')) { 
     alert('Sorry, that has already been taken!'); 
    } else { 
     if (player === 1) { 
      boxSelected.addClass('exes'); 
      if (checkIfPlayerWon('exes')) { 
       alert('Congrats! Player ' + player + 'has won the game!'); 
      } else { 
       player = 2; 

      } 
     } else { 
      boxSelected.addClass('ohs'); 
      if (checkIfPlayerWon('ohs')) { 
       alert('Congrats! Player ' + player + 'has won the game!'); 
      } else { 
       player = 1; 

      } 

     } 

    } 
}); 







function checkIfPlayerWon(symbol) { 
    if ($('.sq1').hasClass(symbol) && $('.sq2').hasClass(symbol) && $('.sq3').hasClass(symbol)) { 
     return true; 

    } else if ($('.sq4').hasClass(symbol) && $('.sq5').hasClass(symbol) && $('.sq6').hasClass(symbol)) { 
     return true; 

    } else if ($('.sq7').hasClass(symbol) && $('.sq8').hasClass(symbol) && $('.sq9').hasClass(symbol)) { 
     return true; 

    } else if ($('.sq1').hasClass(symbol) && $('.sq4').hasClass(symbol) && $('.sq7').hasClass(symbol)) { 
     return true; 

    } else if ($('.sq2').hasClass(symbol) && $('.sq5').hasClass(symbol) && $('.sq8').hasClass(symbol)) { 
     return true; 

    } else if ($('.sq3').hasClass(symbol) && $('.sq6').hasClass(symbol) && $('.sq9').hasClass(symbol)) { 
     return true; 
    } else if ($('.sq1').hasClass(symbol) && $('.sq5').hasClass(symbol) && $('.sq9').hasClass(symbol)) { 
     return true; 
    } else if ($('.sq3').hasClass(symbol) && $('.sq5').hasClass(symbol) && $('.sq9').hasClass(symbol)) { 
     return true; 

    } else { 
     return false; 



    } 
} 

});

+0

ゲームが終了している(すべての四角形が採られている)が、どちらのプレイヤーも勝っていないかどうかを確認します。 – bejado

+0

なぜこれが下落したのですか? –

+0

@Lamar Smith私が知っている他の方法が1つありますが、現在の実装とは非常に異なっています。 –

答えて

0

すべての四角形が持つクラスが.squareの場合は、$(.square).forEach(function(){ ...のようにそのクラスにforEachループを実行して、正方形が空であるかどうかを確認できます。いずれの四角も空でない場合、ブール値game_still_onはfalseとなり、同期ループが完了した後、描画ゲームルーチンが開始されます。