Ristikon ja nollan vuorottelun analysointi

Tällä oppitunnilla haluan näyttää sinulle, kuinka tehdä ristikon ja nollan vuorottelu yhdellä rivillä. Olet todennäköisesti tehnyt jotain tällaista:

javascriptfunction start(cells) {
  let i = 0; // laskurin alkuarvo
  
  for (let cell of cells) {
    cell.addEventListener('click', function() {
      if (i % 2 == 0) {
        this.textContent = 'X';
      } else {
        this.textContent = '0';
      }
      
      i++; // kasvatetaan laskuria
    });
  }
}

Ehdotan tehtävän ratkaisemista lyhyemmin. Tehdään taulukko 'pelaajistamme':

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

Kuten näet, tässä taulukossa ristikon avain on 0 ja nollan - avain 1. Sama voidaan sanoa i % 2:sta - ristikon jäännös on 0 ja nollan - 1.

Eli tätä voidaan käyttää avaimen sijaan:

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

console.log(gamers[key]);

Tai vielä lyhyemmin:

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

Tai vielä lyhyemmin:

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

Yksinkertaistetaan nyt funktion start koodi:

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

Itsenäisesti, katsomatta koodiini, tee kuvattu muutos.

Задание 2

Missä tahansa solussa voi tällä hetkellä tehdä rajoittamattoman määrän napsautuksia, muuttaen esimerkiksi ristikon nollaksi. Korjaa tämä.