Дөңгелек және крестік кезектесуін талдау
Бұл сабақта мен сізге дөңгелек және крестік кезектесуін бір жол кодпен қалай жасау керектігін көрсеткім келеді. Сіз бәлкіме, мынаған ұқсас нәрсе жасадыңыз:
function start(cells) {
let i = 0; // есептегіштің бастапқы мәні
for (let cell of cells) {
cell.addEventListener('click', function() {
if (i % 2 == 0) {
this.textContent = 'X';
} else {
this.textContent = '0';
}
i++; // есептегішті арттырамыз
});
}
}
Мен мәселені қысқарақ шешуді ұсынамын. Өз
ойыншыларымыздың массивін жасайық:
let gamers = ['X', 'O'];
Көріп отырғаныңыздай, бұл массивте крестіктің
кілті 0, ал дөңгелектің кілті 1.
i % 2 туралы да солай айтуға болады
- крестік үшін қалдық 0 болады, ал
дөңгелек үшін - 1.
Яғни, бұл нәрсені кілт орнына пайдалануға болады:
let gamers = ['X', 'O'];
let key = i % 2;
console.log(gamers[key]);
Немесе одан да қысқа:
let gamers = ['X', 'O'];
console.log(gamers[i % 2]);
Немесе одан да қысқа:
console.log(['X', 'O'][i % 2]);
Енді start функциямыздың кодын жеңілдетейік:
function start(cells) {
let i = 0;
for (let cell of cells) {
cell.addEventListener('click', function() {
this.textContent = ['X', 'O'][i % 2];
i++;
});
}
}
Өздігінізше, менің кодымға қарамастан, сипатталған түзетуді енгізіңіз.
Қазір кез келген ұяшықта шектеусіз басу жасауға болады, мысалы, крестікті дөңгелекке ауыстырады. Мұны түзетіңіз.