카테고리 없음

[Java 미니 프로젝트] 랜덤 숫자 맞추기 게임 – 변수, 연산자, 제어문, 배열 연습용

별초롱언니 2025. 5. 4. 20:33

📒과제 

변수, 연산자, 제어문, 배열을 활용하여 프로그램 만들어보기

 

처음에는 평소 점심이나 저녁 메뉴를 정할 때 고민하던 기억이 나서, "오늘 뭐 먹지?"라는 프로그램을 만들려고 했습니다.  
하지만 생각보다 구조가 복잡했고, 아직 배운 지 얼마 되지 않아 기본기가 부족하다는 걸 느껴서 잠시 중단하게 됐습니다.  

그래서 지금 내가 할 수 있는 것부터 해보자고 생각했고, 과제 조건을 최대한 포함할 수 있는 주제를 고민하다가  
랜덤 숫자 맞추기 게임이 가장 적절하다고 판단했습니다.

처음 시작은 역시 막막했지만, 하나하나 차근차근 시도해 봤습니다.  
먼저 `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 변수로 시도 횟수 카운트