숫자 맞히기 게임의 진행 방식
숫자 맞히기 게임은 선택한 난이도 범위 안에서 비밀 숫자를 하나 만들고, 사용자가 입력한 추측값에 대해 너무 낮음, 너무 높음, 정답 중 하나를 알려 줍니다. 새 게임을 시작하면 현재 선택된 최소값과 최대값 사이에서 무작위 정수가 생성되고, 시도 횟수와 이전 추측 기록이 초기화됩니다. 추측이 낮으면 가능한 범위의 하한이 그 숫자보다 하나 큰 값으로 바뀌고, 추측이 높으면 상한이 하나 작은 값으로 바뀝니다. 범위 막대와 기록 칩을 통해 남은 후보가 어떻게 좁혀지는지 볼 수 있습니다.
이분 탐색 전략
가장 효율적인 방법은 매번 남은 범위의 가운데 값을 추측하는 것입니다. 범위가 1부터 100이라면 먼저 50을 입력하고, 낮다는 힌트가 나오면 51부터 100만 남기며, 높다는 힌트가 나오면 1부터 49만 남깁니다. 이렇게 가능한 범위를 절반씩 줄이는 방식이 이분 탐색입니다. 게임은 단순한 놀이이지만 조건문, 범위 갱신, 검색 알고리즘을 설명하는 교육 도구로도 쓸 수 있습니다. 오른쪽 안내는 범위가 커질수록 필요한 시도 수가 어떻게 늘어나는지 이해하는 데 도움이 됩니다.
입력 제한과 주의점
입력값은 현재 범위 안의 정수여야 합니다. 비어 있거나 범위를 벗어난 값은 오류로 처리되며 유효한 시도로 보지 않습니다. Enter 키로도 추측을 제출할 수 있고, 정답을 맞히면 성공 메시지와 시도 횟수, 간단한 축하 효과가 표시됩니다. 무작위 숫자는 브라우저의 Math.random() 으로 생성되므로 학습과 놀이에는 충분하지만, 경품 추첨처럼 검증 가능한 무작위성이 필요한 상황에는 적합하지 않습니다. 여러 명이 번갈아 플레이하면 정답까지의 시도 횟수를 비교할 수 있습니다.
댓글