A kereszt és kör váltakozásának elemzése
Ebben a leckében szeretném megmutatni nektek, hogyan lehet a kereszt és kör váltakozását egyetlen kódsorban megoldani. Valószínűleg ti valami ilyesmit csináltatok:
function start(cells) {
let i = 0; // számláló kezdeti értéke
for (let cell of cells) {
cell.addEventListener('click', function() {
if (i % 2 == 0) {
this.textContent = 'X';
} else {
this.textContent = '0';
}
i++; // növeljük a számlálót
});
}
}
Én rövidebb megoldást javaslok. Készítsük el
a 'játékosok' tömbünket:
let gamers = ['X', 'O'];
Amint látjátok, ebben a tömbben a kereszt
kulcsa 0, a köré pedig 1. Ugyanez
elmondható a i % 2 -ről is
- a keresztnél a maradék 0 lesz, a
körnél pedig 1.
Vagyis ezt a dolgot használhatjuk kulcsként:
let gamers = ['X', 'O'];
let key = i % 2;
console.log(gamers[key]);
Vagy még rövidebben:
let gamers = ['X', 'O'];
console.log(gamers[i % 2]);
Vagy még rövidebben:
console.log(['X', 'O'][i % 2]);
Egyszerűsítsük most le a start függvényünk kódját:
function start(cells) {
let i = 0;
for (let cell of cells) {
cell.addEventListener('click', function() {
this.textContent = ['X', 'O'][i % 2];
i++;
});
}
}
Önállóan, be nem lesve a kódomba, végezzétek el az leírt módosítást.
Jelenleg bármelyik cellára korlátlan számú kattintást lehet végrehajtani, megváltoztatva például a keresztet körré. Javítsátok ezt ki.