Анализа наизменичног смењивања

У овој лекцији желим да вам покажем како да направите наизменично смењивање X и O у једном реду. Вероватно сте урадили нешто овако:

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'];

Као што видите, у овом низу X има кључ 0, а O - кључ 1. To исто важи и за i % 2 - за X остатак ће бити 0, а за O - 1.

To значи да се ова ствар може користити уместо кључа:

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

Тренутно се на било које поље може кликнути неограничен број пута, мењајући, на пример, X у O. Исправите ово.