Analýza striedania krížika a koliečka

V tejto lekcii vám chcem ukázať, ako urobiť striedanie krížika a koliečka v jednom riadku. Vy ste pravdepodobne urobili niečo takéto:

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

Navrhujem vyriešiť úlohu kratšie. Urobme pole našich 'hráčov':

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

Ako vidíte, v tomto poli má krížik kľúč 0 a koliečko - kľúč 1. To isté možno povedať aj o i % 2 - pre krížik bude zvyšok 0, a pre koliečko - 1.

To znamená, že túto vec možno použiť namiesto kľúča:

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

console.log(gamers[key]);

Alebo ešte kratšie:

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

Alebo ešte kratšie:

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

Zjednodušme teraz kód našej funkcie start:

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

Samostatne, bez nahliadania do môjho kódu, vnášte opísanú opravu.

Задание 2

Momentálne je možné na ľubovoľné políčko robiť neobmedzené množstvo kliknutí, meniac napríklad krížik na koliečko. Opravte to.