Я пытаюсь сделать игру тральщика в jquery.
Когда пользователь нажимает на ячейку таблицы, выполняется проверка, чтобы увидеть, есть ли число или x в квадрате.Если нет, вызывается эта функция и ей передается ячейка таблицы.
Функция возвращает все соседние квадраты в квадрат, по которому щелкнули, и они затем раскрываются.
Вопросесть, из выбора соседних квадратов, первоначально возвращенных, как я могу проверить, являются ли какие-либо из них пустыми, и если они есть, получить квадраты, смежные с ними, и раскрыть их и проверить, являются ли какие-либо из них пустыми .... довсе пустые квадраты, которые были смежны с любыми смежными квадратами по отношению к кликаемому, открыты?
if (isEmptySquare(this)) {
emp = adjacentSquares(this);
$(emp).each(function() {
$(this).removeClass('covered').addClass('uncovered');
});
}
function adjacentSquares(square) {
//Find the row and column of the current td(square)
var thisRow = $(square).parent().parent().children().index($(square).parent());
var thisCol = $(square).parent().children().index($(square));
var prevRow = (thisRow - 1);
var nextRow = (thisRow + 1);
if (thisCol == 0) {
sliceFrom = 0;
} else {
sliceFrom = (thisCol - 1);
}
//Select all the adjacent td's to the current td, then merge the adjacent cells into a variable
var above = $('tr:eq(' + prevRow + ')').children('td').slice((sliceFrom), (thisCol + 2));
var below = $('tr:eq(' + nextRow + ')').children('td').slice((sliceFrom), (thisCol + 2));
var aboveBelow = $.merge(above, below);
var prevNext = $.merge(($(square).next('td')), ($(square).prev('td')));
var adjacents = $.merge(aboveBelow, prevNext);
return adjacents;
}
function isEmptySquare(square) {
if ($(square).filter(function() {
return !/[0-9]/.test($(square).text());
}).not(":contains('x')").length > 0) {
return true;
}
else {
return false;
}
}