X-ի և O-ի հերթագայության վերլուծություն

Այս դասում ես ուզում եմ ցույց տալ ձեզ, թե ինչպես կարելի է 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 բանալին։ Նույնը կարելի է ասել i % 2-ի մասին - x-ի համար մնացորդը կլինի 0, իսկ o-ի համար՝ 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

Այժմ ցանկացած խցի վրա կարելի է անել անսահմանափակ կլիկներ՝ օրինակ, x-ը փոխելով o-ի։ Ուղղեք սա։