Ontleding van die afwisseling van kruis en nul

In hierdie les wil ek vir jou wys hoe om die afwisseling van kruis en nul in een reël te maak. Jy het heel waarskynlik iets soos dit gedoen:

javascriptfunction start(cells) {
  let i = 0; // beginwaarde van die teller
  
  for (let cell of cells) {
    cell.addEventListener('click', function() {
      if (i % 2 == 0) {
        this.textContent = 'X';
      } else {
        this.textContent = '0';
      }
      
      i++; // verhoog die teller
    });
  }
}

Ek sal voorstel om die probleem korter op te los. Laat ons 'n skikking van ons 'spelers' maak:

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

Soos jy kan sien, het die kruis in hierdie skikking sleutel 0, en die nul - sleutel 1. Dieselfde kan gesê word van i % 2 - vir die kruis sal die res 0 wees, en vir die nul - 1.

Dit wil sê hierdie ding kan in plaas van die sleutel gebruik word:

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

console.log(gamers[key]);

Of selfs korter:

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

Of nog korter:

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

Laat ons nou die kode van ons funksie start vereenvoudig:

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

Doen dit selfstandig, sonder om na my kode te kyk, voer die beskryfde wysiging in.

Задание 2

Tans kan op enige sel 'n onbeperkte aantal klieke gedoen word, wat byvoorbeeld die kruis na 'n nul verander. Regverdig dit.