Analýza střídání křížku a kolečka

V této lekci vám chci ukázat, jak provést střídání křížku a kolečka v jednom řádku. Nejspíše jste udělali něco takového:

javascriptfunction start(cells) {
  let i = 0; // počáteční hodnota čítače
  
  for (let cell of cells) {
    cell.addEventListener('click', function() {
      if (i % 2 == 0) {
        this.textContent = 'X';
      } else {
        this.textContent = '0';
      }
      
      i++; // zvýšíme čítač
    });
  }
}

Já navrhuji řešit úkol kratším způsobem. Vytvoříme pole našich hráčů:

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

Jak vidíte, v tomto poli má křížek klíč 0 a kolečko - klíč 1. To samé lze říci o i % 2 - pro křížek bude zbytek 0 a pro kolečko - 1.

To znamená, že tuto věc lze použít místo klíče:

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

console.log(gamers[key]);

Nebo ještě kratší:

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

Nebo ještě kratší:

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

Zjednodušme nyní kód naší funkce start:

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

Samostatně, bez nahlížení do mého kódu, proveďte popsanou úpravu.

Задание 2

Nyní lze na libovolnou buňku provést neomezený počet kliknutí, čímž se mění, například, křížek na kolečko. Opravte to.