Analiza izmeničnega prepletanja križcev in krožcev
V tej lekciji vam želim pokazati, kako narediti izmenično prepletanje križca in krožca v eni vrstici. Verjetno ste naredili nekaj takega:
function start(cells) {
let i = 0; // začetna vrednost števca
for (let cell of cells) {
cell.addEventListener('click', function() {
if (i % 2 == 0) {
this.textContent = 'X';
} else {
this.textContent = '0';
}
i++; // povečamo števec
});
}
}
Predlagam, da rešite nalogo na krajši način. Naredimo
polje naših 'igralcev':
let gamers = ['X', 'O'];
Kot lahko vidite, ima križec v tem polju
ključ 0, krožec pa ključ 1. Enako
velja za i % 2
- za križec bo ostanek 0, za
krožec pa 1.
To pomeni, da lahko to uporabite namesto ključa:
let gamers = ['X', 'O'];
let key = i % 2;
console.log(gamers[key]);
Ali še krajše:
let gamers = ['X', 'O'];
console.log(gamers[i % 2]);
Ali še krajše:
console.log(['X', 'O'][i % 2]);
Poenostavimo zdaj kodo naše funkcije start:
function start(cells) {
let i = 0;
for (let cell of cells) {
cell.addEventListener('click', function() {
this.textContent = ['X', 'O'][i % 2];
i++;
});
}
}
Samostojno, brez vpogleda v mojo kodo, vnesite opisano spremembo.
Trenutno je mogoče na katero koli celico narediti neomejeno število klikov, pri čemer se na primer križec spremeni v krožec. Popravite to.