Таҳлили алтернативии X ва O
Дар ин дарс ман мехоҳам ба шумо нишон диҳам, ки чӣ тавр алтернативии 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. Ҳамон
чизро метавон дар бораи i % 2 гуфт
- барои X боқимонда 0 хоҳад буд, ва
барои O - 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++;
});
}
}
Мустақилона, ба коди ман наменигаред, тағйироти зикршударо ворид кунед.
Ҳоло ба ҳар ячейка метавон бешумор дафъа клик кард, масалан, X-ро ба O иваз кард. Инро ислоҳ кунед.