Krustiņu un nullīšu maiņas analīze
Šajā nodarbībā es vēlos jums parādīt, kā izveidot krustiņu un nullīšu maiņu vienā koda rindā. Jūs, visticamāk, esat izveidojuši kaut ko līdzīgu šim:
function start(cells) {
let i = 0; // sākotnējā skaitītāja vērtība
for (let cell of cells) {
cell.addEventListener('click', function() {
if (i % 2 == 0) {
this.textContent = 'X';
} else {
this.textContent = '0';
}
i++; // palielinām skaitītāju
});
}
}
Es ierosinu atrisināt uzdevumu īsāk. Izveidosim
mūsu 'spēlētāju' masīvu:
let gamers = ['X', 'O'];
Kā jūs varat redzēt, šajā masīvā krustiņam ir
atslēga 0, bet nullītei - atslēga 1. To
pats var teikt arī par i % 2
- krustiņam atlikums būs 0, bet
nullītei - 1.
Tas ir, šo var izmantot atslēgas vietā:
let gamers = ['X', 'O'];
let key = i % 2;
console.log(gamers[key]);
Vai vēl īsāk:
let gamers = ['X', 'O'];
console.log(gamers[i % 2]);
Vai vēl īsāk:
console.log(['X', 'O'][i % 2]);
Vienkāršosim tagad mūsu funkcijas start kodu:
function start(cells) {
let i = 0;
for (let cell of cells) {
cell.addEventListener('click', function() {
this.textContent = ['X', 'O'][i % 2];
i++;
});
}
}
Patstāvīgi, neieskatoties manā kodā, veiciet aprakstīto labojumu.
Šobrīd uz jebkuras šūnas var veikt neierobežotu klikšķu skaitu, mainot, piemēram, krustiņu uz nullīti. Izlabojiet to.