[Java 미니 프로젝트] 랜덤 숫자 맞추기 게임 – 변수, 연산자, 제어문, 배열 연습용
📒과제
변수, 연산자, 제어문, 배열을 활용하여 프로그램 만들어보기
처음에는 평소 점심이나 저녁 메뉴를 정할 때 고민하던 기억이 나서, "오늘 뭐 먹지?"라는 프로그램을 만들려고 했습니다.
하지만 생각보다 구조가 복잡했고, 아직 배운 지 얼마 되지 않아 기본기가 부족하다는 걸 느껴서 잠시 중단하게 됐습니다.
그래서 지금 내가 할 수 있는 것부터 해보자고 생각했고, 과제 조건을 최대한 포함할 수 있는 주제를 고민하다가
랜덤 숫자 맞추기 게임이 가장 적절하다고 판단했습니다.
처음 시작은 역시 막막했지만, 하나하나 차근차근 시도해 봤습니다.
먼저 `Random` 객체를 생성하고, int answer 변수에 1부터 100 사이의 랜덤한 숫자를 저장했습니다.
random.nextInt(100)을 사용하면 0부터 99까지의 숫자가 생성되기 때문에, +1을 해서 1부터 100까지로 조정했습니다.
사용자가 입력한 숫자를 저장할 변수 guess는 초기값을 0으로 설정했고,
시도 횟수를 저장할 count 변수도 함께 선언해 몇 번 만에 맞췄는지를 보여줄 수 있도록 했습니다.
정답을 맞출 때까지 반복되도록 while문을 사용하고,
if문으로 사용자의 입력이 정답보다 큰지, 작은 지를 판단해서 힌트를 주도록 구성했습니다.
처음에는 else if (guess < answer)를 사용했는데,
그 상태에서 1000 같은 큰 숫자를 입력해도 정답 처리되는 문제가 있었습니다.
알고 보니 부등호 방향을 잘못 설정한 거였고, guess > answer로 수정한 후에 정상 동작하는 걸 확인했습니다.
지금은 단순한 숫자 맞추기 게임이지만, 처음 만드는 입장에서는 쉽지 않았고,
오류를 겪으면서도 해결해 나가는 과정을 통해 많은 걸 배웠습니다.
한 달 뒤에는 이런 정도는 쉽게 만들 수 있을 거라는 자신감을 갖고, 더 열심히 공부해 나가야겠다고 다짐하게 됐습니다.
package make;
import java.util.Scanner;
import java.util.Random;
public class randomNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int answer = random.nextInt(100) + 1;
int guess = 0;
int count = 0;
System.out.println("===== 숫자 맞추기 게임 =====");
System.out.println("1부터 100사이의 숫자를 맞춰보자!");
while (guess != answer)
{
guess = scanner.nextInt();
count++;
if (guess < answer)
{
System.out.println("더 큰 수로 생각해보자 ~ ");
}
else if (guess > answer)
{
System.out.println("더 작은 수로 생각해보자 ~ ");
}
else
{
System.out.printf("정답! 숫자를 %d번만에 맞췄어! 짝짝짝👏🏻👏🏻👏🏻!!",count);
}
}
}
}

블로그 정리를 하는 와중에 배열 부분이 들어가지 않은걸 확인하고 다시 전체적으로 수정하였습니다
package make;
import java.util.Scanner;
import java.util.Random;
public class randomNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int[] guesses = new int[100];
int answer = random.nextInt(100) + 1;
int guess = 0;
int count = 0;
int index = 0;
System.out.println("===== 숫자 맞추기 게임 =====");
System.out.println("1부터 100사이의 숫자를 맞춰보자!");
while (guess != answer)
{
guess = scanner.nextInt();
guesses[index] = guess;
count++;
index++;
if (guess < answer)
{
System.out.println("더 큰 수로 생각해보자 ~ ");
}
else if (guess > answer)
{
System.out.println("더 작은 수로 생각해보자 ~ ");
}
else
{
System.out.printf("정답! 숫자를 %d번만에 맞췄어! 짝짝짝👏🏻👏🏻👏🏻!!",count);
}
}
System.out.print("너가 입력한 숫자는 ");
for (int i =0; i < index; i++) {
System.out.print(guesses[i] + " ");
}
System.out.println("이야");
}
}

📍 프로그램 설명
1부터 100까지 중 무작위 숫자 하나를 생성
사용자가 숫자를 입력하면 정답과 비교
힌트를 주고, 정답일 경우 시도 횟수를 함께 출력
📍 사용된 주요 문법
Random 객체로 난수 생성
Scanner로 사용자 입력 받기
while, if-else 조건문으로 흐름 제어
int 변수로 시도 횟수 카운트