Давайте теперь сделаем так, чтобы при активации последней ячейки игрового поля, это поле увеличивалось на один ряд и одну колонку.
В предыдущем уроке вы должны были сделать функцию для активации ячеек. Вот такой код у вас должен был получится:
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
больше текущего.
Реализуйте описанное.