더북(TheBook)
        holes[index] = 0;
      }, 1000);
      $gopher.classList.remove('hidden');
    } else if (Math.random() < bombPercent) {
      const $bomb = $$cells[index].querySelector('.bomb');
      holes[index] = setTimeout(() => { // 1초 뒤에 사라짐
        $bomb.classList.add('hidden');
        holes[index] = 0;
      }, 1000);
      $bomb.classList.remove('hidden');
    }
  });
}

Math.random() 메서드로 무작위 값을 얻을 수 있습니다. 두더지 확률이 30%라서 0.3으로 설정했는데, 폭탄 확률(20%)은 0.2가 아닌 0.5입니다. 그리고 빈 구멍 확률은 아예 설정하지 않았습니다. 그 이유는 if 문을 보면 알 수 있습니다. Math.random()의 결과가 0부터 0.3까지는 두더지를 표시하고, 0.3부터 0.5까지는 폭탄을 표시합니다. 그 이후는 무시합니다.

이렇게 해서 tick() 함수를 실행할 때마다 구멍에서 두더지나 폭탄 중 어떤 것이 나올지 결정할 수 있습니다. 두더지, 폭탄, 빈 구멍의 확률을 시간 흐름에 따라 조정하면 게임 난이도를 조절할 수도 있습니다.

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