up_down_game

맨큐의 경제학9판·2023년 5월 11일
0

site:https://woomin-up-down-game.netlify.app/
github repository:https://github.com/woominKO/updown_game

컴퓨터가 랜덤으로 1-20까지 숫자를 고르면 내가 맞추면 되는 게임이다
내가 입력한 숫자가 더 크면 up 이 출력되고 더 낮으면 down이 출력된다.

여기서 내가 조금 어려웠던 것은 이 부분이다.

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min; //최댓값은 제외, 최솟값은 포함
}

math.random 메소드를 사용한 것인데...로직을 설명해 보자면 우선 Math.ceil과 Math.floor는 변수와 가장 근처에 있는 정수 하나를 반환한다. 요약하자면 올림/내림이다 .그런데 어짜피 정수를 입력받을 것이기 때문에 딱히 필요없는 코드이긴 한 것 같다. 하지만 Math.floor의 기능을 그냥 지나쳐도 되냐는 질문에는 아니요 라고 대답할 것같다. 왜냐하면 return값에 Math.floor메소드를 사용했기 때문이다. Math.random() 은 0 이상 1 미만의 부동소숫점 의사 난수를 반환한다. 여기서 한가지 궁금했던 점은 왜 max-min을 곱하냐는 것이다.

예시를 들어 그림을 그려보면 조금더 쉽게 이해가 된다.
이렇게 보면 math.random()이 어떤 0과 1사이의 부동소수점을 생성하는지와 관계없이 max값과 min사이의 정수값들을 모두 출력한다.참으로 신기한 로직이다

한가지 수정사항이 필요한데
html이 다 로드된 후에 while문이 실행되도록 하고 싶다.

profile
맨큐의 개발일지

0개의 댓글

관련 채용 정보