더북(TheBook)
const callback = (event) => { 
  if (event.target.textContent !== '') { // 빈칸이 아닌가? 
    console.log('빈칸이 아닙니다.');
    return;
  }
  // 빈칸이면
  console.log('빈칸입니다.'); 
  event.target.textContent = turn;
  const hasWinner = checkWinner(event.target);
  // 승자가 있으면
  if (hasWinner) {
    $result.textContent = `${turn}님이 승리!`;
    $table.removeEventListener('click', callback);
    return;
  }
  // 승자가 없으면
  turn = turn === 'X' ? 'O' : 'X';
};

승자가 없는 경우에는 무승부인지 판단합니다. 9칸에 모두 textContent가 들어 있으면 무승부가 됩니다. 모든 칸이 채워져 있는지 판단할 때 drawtrue로 놓은 후, 한 칸이라도 빈칸이 있다면 drawfalse로 바꿉니다.

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