Javascript で簡単な Tic Tac Toe ゲームを作成しています。現在、勝者を確認するために、最初に誰のターンであるかを取得し、次にボード上の X または O がある場所を見つける関数があります。それらが持つスペースには番号 (1 ~ 8) が付けられ、配列に追加されます。ここまでは順調ですね。
今、私は別の配列、すべての勝利の組み合わせを持つ配列を比較しようとしています:
var winningCombinations = [[1,2,3],[4,5,6],[7,8,9],[1,4,7],[2,5,8],[3,6,9],[1,5,9],[3,5,7]];
テスト配列では、2、5、および 8 が含まれているため、勝者になるはずです。
私のテストのソース:
<script>
var test = [2,4,5,8]
var winningCombinations = [[1,2,3],[4,5,6],[7,8,9],[1,4,7],[2,5,8],[3,6,9],[1,5,9],[3,5,7]];
for(var x=0; x<winningCombinations.length; x++) {
if (winningCombinations[x].indexOf(test) > -1) {
alert("Win!");
} else {
alert ("No win.");
}
}
</script>
現時点では、値全体として [2,4,5,8] のみをテストしていると思います。内部の個々の数値のインスタンスではありません。これは私が困惑しているところです。テスト配列が任意の順序で、winningCombinations 値のいずれかと一致するかどうかを確認するにはどうすればよいですか?