Analiza naizmjeničnog izmjenjivanja X i O

U ovoj lekciji želim da vam pokažem kako da napravite naizmjenično izmjenjivanje X i O u jednoj liniji. Verovatno ste uradili nešto ovako:

javascriptfunction start(cells) {
  let i = 0; // početna vrednost brojača
  
  for (let cell of cells) {
    cell.addEventListener('click', function() {
      if (i % 2 == 0) {
        this.textContent = 'X';
      } else {
        this.textContent = '0';
      }
      
      i++; // povećavamo brojač
    });
  }
}

Predložiću da rešimo zadatak kraće. Napravimo niz naših 'igrača':

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

Kao što vidite, u ovom nizu X ima ključ 0, a O - ključ 1. Isto može da se kaže i za i % 2 - za X ostatak će biti 0, a za O - 1.

To znači da se ova stvar može koristiti umesto ključa:

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

console.log(gamers[key]);

Ili još kraće:

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

Ili još kraće:

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

Pojednostavimo sada kod naše funkcije start:

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

Samostalno, bez gledanja u moj kod, unesite opisane izmene.

Задание 2

Trenutno se na bilo koje polje može kliknuti neograničen broj puta, menjajući, na primer, X u O. Ispravite ovo.