Анализа наизменичног смењивања
У овој лекцији желим да вам покажем како да направите наизменично смењивање X и O у једном реду. Вероватно сте урадили нешто овако:
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'];
Као што видите, у овом низу X има
кључ 0, а O - кључ 1. To
исто важи и за i % 2
- за X остатак ће бити 0, а
за O - 1.
To значи да се ова ствар може користити уместо кључа:
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++;
});
}
}
Самостално, без подсматривања у мој код, унесите описану измену.
Тренутно се на било које поље може кликнути неограничен број пута, мењајући, на пример, X у O. Исправите ово.