더북(TheBook)
  if (turn === 'X') {
    const emptyCells = rows.flat().filter((v) => !v.textContent);
    const randomCell = emptyCells[Math.floor(Math.random() * emptyCells.length)];
    randomCell.textContent = 'X';
    checkWinnerAndDraw(randomCell);
  }
};

여러분이 어떤 칸을 클릭하면 컴퓨터가 바로 다음 칸을 선택합니다. 컴퓨터의 선택이 너무 빠르다면 setTimeout()으로 지정한 시간 뒤에 칸을 선택하게 합니다. 단, setTimeout()을 사용하려면 컴퓨터가 칸을 선택할 때까지 여러분이 빈칸을 클릭할 수 없게 막아야 합니다. 막지 않으면 컴퓨터가 클릭하기도 전에 여러분이 칸을 클릭할 수도 있으니까요. 타이머를 사용할 때는 항상 타이머의 콜백 함수가 실행되기 전에 발생할 수 있는 모든 상황을 고려해야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.