Я студент по веб-разработке, работающий над игрой Tic Tac Toe.проверка вложенных массивов для выигрышной комбинации w/JavaScript/jQuery
Предполагая, что квадраты на доске пронумерованы 1-9, у меня есть массив из трехэлементных массивов, представляющих выигрышные комбинации. Мне нужен способ проверить квадраты каждого игрока, принадлежащие этим комбинациям. Я думаю, что мне понадобятся вложенные петли for
, но я не могу заставить его работать. Я испробовал поиск owned
для winners
и ищу winners
для owned
.
Любые мысли? Я использую jQuery, но буду счастлив с помощью решения для ванильного JavaScript.
EDITED: для того чтобы быть четким, в Tic Tac Toe порядок winners
и порядок перемещения игроков не имеет смысла. В конце типичной игры xOwned
может быть [9, 4, 7, 3, 8], и это должно привести к «победе X!». потому что в нем есть [7, 8, 9].
var xOwned = [];
var oOwned = [];
var winners = [
["1", "2", "3"],
["4", "5", "6"],
["7", "8", "9"],
["1", "4", "7"],
["2", "5", "8"],
["3", "6", "9"],
["1", "5", "9"],
["7", "8", "9"]
];
//when a player clicks on a square the value/number
//of that square (i.e., 1-9) is pushed into their array.
var game = {
score: function(){
for (var i = 0; i <= xOwned.length; i++) {
for (var j = 0; j < 3; j++) {
if($.inArray(xOwned[i], winners[j]) !== -1) {
victory.html("X wins!");
}
}
}
for (var k = 0; k <= oOwned.length; k++) {
for (var l = 0; l < 3; l++) {
if($.inArray(oOwned[k], winners[l]) !== -1) {
victory.html("O wins!");
}
}
}
}
};
Что такое содержимое 'xOwned' и' oOwned'? –
У нас нет способа узнать, что интерфейс действительно заполняет массивы. – charlietfl
Извините, я не включил всю программу - когда игрок нажимает на квадрат, значение push/number этого квадрата (то есть 1-9) толкается в их массив. –