Давайте теперь сделаем так, чтобы при активации последней ячейки игрового поля, это поле увеличивалось на один ряд и одну колонку.
В предыдущем уроке вы должны были сделать функцию для активации ячеек. Вот такой код у вас должен был получится:
let field = document.querySelector('#field');
start(2);
function start(size) {
activate(build(field, prepare(size)));
}
function activate(cells) {
let counter = 1;
for (let cell of cells) {
cell.addEventListener('click', function() {
if (this.innerHTML == counter) {
this.classList.add('active');
counter++;
}
});
}
}
Давайте модифицируем эту функцию так, чтобы при клике на последнюю ячейку игра начиналась сначала но с увеличенным полем.
Как поймать момент окончания? При каждом клике нужно проверять счетчик на то, что его новое значение равно последнему числу поля. Если равно - то будем запускать игру сначала.
Чему равно значение последнего числа поля? Мы знаем, что у нас есть переменная size, которое содержит размер поля. Значит, size * size даст нам последнее число.
Это значит, что вторым параметром функции activate нужно передать переменную size:
function start(size) {
activate(build(field, prepare(size)), size); // правка
}
function activate(cells, size) { // правка
let last = size * size; // последнее число
}
Теперь обсудим, как запустить игру сначала. У нас уже есть функция start, делающая это. Значит, нам нужно внутри функции activate при окончании раунда вызвать функцию start, но передав ей размер на 1 больше текущего.
Реализуйте описанное.