Дөңгелек және крестік кезектесуін талдау

Бұл сабақта мен сізге дөңгелек және крестік кезектесуін бір жол кодпен қалай жасау керектігін көрсеткім келеді. Сіз бәлкіме, мынаған ұқсас нәрсе жасадыңыз:

javascriptfunction 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++; // есептегішті арттырамыз
    });
  }
}

Мен мәселені қысқарақ шешуді ұсынамын. Өз ойыншыларымыздың массивін жасайық:

javascriptlet gamers = ['X', 'O'];

Көріп отырғаныңыздай, бұл массивте крестіктің кілті 0, ал дөңгелектің кілті 1. i % 2 туралы да солай айтуға болады - крестік үшін қалдық 0 болады, ал дөңгелек үшін - 1.

Яғни, бұл нәрсені кілт орнына пайдалануға болады:

javascriptlet gamers = ['X', 'O'];
let key = i % 2;

console.log(gamers[key]);

Немесе одан да қысқа:

javascriptlet gamers = ['X', 'O'];
console.log(gamers[i % 2]);

Немесе одан да қысқа:

javascriptconsole.log(['X', 'O'][i % 2]);

Енді start функциямыздың кодын жеңілдетейік:

javascriptfunction start(cells) {
  let i = 0;
  
  for (let cell of cells) {
    cell.addEventListener('click', function() {
      this.textContent = ['X', 'O'][i % 2];
      i++;
    });
  }
}
Задание 1

Өздігінізше, менің кодымға қарамастан, сипатталған түзетуді енгізіңіз.

Задание 2

Қазір кез келген ұяшықта шектеусіз басу жасауға болады, мысалы, крестікті дөңгелекке ауыстырады. Мұны түзетіңіз.