Analisis Pergantian Silang dan Bulat

Dalam pelajaran ini, saya ingin menunjukkan kepada Anda, bagaimana cara membuat pergantian silang dan bulat dalam satu baris kode. Anda kemungkinan besar, telah membuat sesuatu seperti ini:

javascriptfunction start(cells) {
  let i = 0; // nilai awal penghitung
  
  for (let cell of cells) {
    cell.addEventListener('click', function() {
      if (i % 2 == 0) {
        this.textContent = 'X';
      } else {
        this.textContent = '0';
      }
      
      i++; // tingkatkan penghitung
    });
  }
}

Saya akan menawarkan untuk memecahkan masalah lebih pendek. Mari buat array dari 'pemain' kita:

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

Seperti yang Anda lihat, dalam array ini silang memiliki kunci 0, dan bulat - kunci 1. Hal yang sama dapat dikatakan untuk i % 2 - untuk silang sisanya akan 0, dan untuk bulat - 1.

Artinya, hal ini dapat digunakan sebagai pengganti kunci:

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

console.log(gamers[key]);

Atau lebih pendek lagi:

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

Atau bahkan lebih pendek:

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

Sekarang mari sederhanakan kode fungsi start kita:

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

Secara mandiri, tanpa melihat kode saya, terapkan perubahan yang dijelaskan.

Задание 2

Saat ini, pada sel mana pun dapat dilakukan klik yang tidak terbatas jumlahnya, mengubah, misalnya, silang menjadi bulat. Perbaiki ini.