การวิเคราะห์การสลับกันของ 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 ให้แก้ไขสิ่งนี้