hole을 모두 선택해온 다음, 랜덤으로 하나의 hole을 선택한다.
const MINIMUM_HOLES = 1;
function randomHole(max) {
return Math.floor(Math.random() * (max - MINIMUM_HOLES) + MINIMUM_HOLES);
}
사실상 변경할 일이 없어 그냥 1로 해주어도 상관없었지만... 왜 1이 들어갔는지, 혹은 랜덤값을 조정할 일이 있을 때를 고려해 상수값을 지정해주었다. 누군가와 협업한다는 가정하에, 가독성 좋고 확장성있는 코드를 작성하는 것에 대해 고민하는 습관을 기르고 싶으니까..!
let timeOut = false;
function handleHole() {
if (timeOut) return;
const selectedHole = holes[randomHole(holes.length)];
selectedHole.classList.add('up');
setTimeout(() => {
selectedHole.classList.remove('up');
handleHole();
}, randomTime(1000))
}
function randomTime(max) {
return Math.random() * (max - MINIMUM_TIME) + MINIMUM_TIME;
}
function startGame() {
timeOut = false;
score = 0;
timer;
handleHole();
}
게임에 필요한 값들을 초기화하고, handleHole함수를 실행해준다.
const timer = setTimeout(() => {
timeOut = true;
}, 10000)
이미 몇 번 만들어본 순수 자바스크립트로 구현한 게임의 형태라, 크게 어려울 건 없었기 때문에 포스팅은 간결하게 마무리했다.
강의에서 작성한 코드와 비교해보았을 때 특별히 보완해야할 부분이나, 알아두어야 할 만한 부분도 크게 보이지 않는다.