Разбор чаргаванне крыжыка і ноліка

У даным уроке я хачу паказаць вам, як зрабіць чаргаванне крыжыка і ноліка ў адну радок. Вы, хутчэй за ўсё, зрабілі нешта такое:

javascriptfunction start(cells) {
  let i = 0; // пачатковае значэнне лічыльніка
  
  for (let cell of cells) {
    cell.addEventListener('click', function() {
      if (i % 2 == 0) {
        this.textContent = 'X';
      } else {
        this.textContent = '0';
      }
      
      i++; // павялічваем лічыльнік
    });
  }
}

Я прапаную вырашыць задачу карацей. Зробім масіў нашых 'гульцоў':

javascriptlet gamers = ['X', 'O'];

Як вы бачыце, у гэтым масіве крыжык мае ключ 0, а нолік - ключ 1. To ж самае можна сказаць і пра i % 2 - для крыжыка астатак будзе 0, а для ноліка - 1.

Гэта значыць гэтую штуку можна выкарыстоўваць замест ключа:

javascriptlet gamers = ['X', 'O'];
let key = i % 2;

console.log(gamers[key]);

Ці яшчэ карацей:

javascriptlet gamers = ['X', 'O'];
console.log(gamers[i % 2]);

Ці яшчэ карацей:

javascriptconsole.log(['X', 'O'][i % 2]);

Спросім цяпер код нашай функцыі start:

javascriptfunction start(cells) {
  let i = 0;
  
  for (let cell of cells) {
    cell.addEventListener('click', function() {
      this.textContent = ['X', 'O'][i % 2];
      i++;
    });
  }
}
Задание 1

Самастойна, не падглядваючы ў мой код, унясіце апісаную праўку.

Задание 2

Зараз на любую ячэйку можна рабіць неабмежаваную колькасць клікаў, мяняючы, напрыклад, крыжык на нолік. Выпраўце гэта.