Analiza alternării X și 0
În această lecție vreau să vă arăt cum să faceți alternarea X și 0 într-o singură linie. Probabil ați făcut ceva de genul:
function start(cells) {
let i = 0; // valoarea inițială a contorului
for (let cell of cells) {
cell.addEventListener('click', function() {
if (i % 2 == 0) {
this.textContent = 'X';
} else {
this.textContent = '0';
}
i++; // creștem contorul
});
}
}
Eu vă propun să rezolvăm problema mai scurt. Să facem
un array cu 'jucătorii' noștri:
let gamers = ['X', 'O'];
După cum vedeți, în acest array X-ul are
cheia 0, iar 0 - cheia 1. Același
lucru se poate spune și despre i % 2
- pentru X restul va fi 0, iar
pentru 0 - 1.
Adică această expresie poate fi folosită în locul cheii:
let gamers = ['X', 'O'];
let key = i % 2;
console.log(gamers[key]);
Sau și mai scurt:
let gamers = ['X', 'O'];
console.log(gamers[i % 2]);
Sau și mai scurt:
console.log(['X', 'O'][i % 2]);
Să simplificăm acum codul funcției noastre start:
function start(cells) {
let i = 0;
for (let cell of cells) {
cell.addEventListener('click', function() {
this.textContent = ['X', 'O'][i % 2];
i++;
});
}
}
Singur, fără să vă uitați la codul meu, introduceți modificarea descrisă.
Acum pe orice celulă se poate face un număr nelimitat de clicuri, schimbând, de exemplu, X în 0. Corectați acest lucru.