JAVA #4 : While문과 Math.random()을 이용한 UP&DOWN 게임 제작

반응형

여러 사람들이 모여서 아이스브래이킹을 할때 나이로 업앤 다운 게임을 하신 경험이 있을 것입니다.

아래 문제가 이와 같은 규칙으로 이뤄진 문제입니다.

랜덤함수를 이용해 컴퓨터가 1~100사이의 임의의 정수를 정하고,
사용자가 입력한 정수와 비교해
입력한 수가 높다면 down, 입력한 숫자가 작다면 up을 출력하시오.
정답을 맞췄다면, 컴퓨터가 정한 수와 답을 입력한 횟수도 같이 출력하시오.

 

While문, if문, Math.random()을 사용해서 문제를 해결했습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.util.Scanner;
 
public class blog{
 
    public static void main(String[] args) {
        
        int cnt=1;
        int sum=0;
        
        int targetNumber = (int) (Math.random()*100+1);
        
        while(true) {
            
            Scanner sc = new Scanner(System.in);
            System.out.printf("정수를 입력하시오");
            int input = Integer.parseInt(sc.nextLine());
            
            if(input<targetNumber) {
                System.out.printf("UP\n"); 
                sum+=cnt;
                continue;
            }else if(input>targetNumber) {
                System.out.printf("DOWN\n");
                sum+=cnt;
                continue;
            
            }else if(input==targetNumber){
                sum+=cnt; 
                 
                System.out.printf("정답:%d, %d번 입력하셨습니다", targetNumber,sum); break;
            }
        }
        
 
    }
 
}
 
cs

 

먼저 컴퓨터가 정할 임의의 숫자를 위해 Math.random()을 사용

1. Math.random()은 0 이상 1.0 미먼의 실수를 정해주므로 100을 곱하고 int형으로 형변환을 취해줍니다

2. 0이 나오는 경우를 제외하기 위해서 +1을 해서 0이 나오지 않게 설정합니다

그리고 조건문에 맞춰서 각 숫자를 입력했을때 반복 실행하게 만들면 문제가 해결됩니다.

 

결과 화면

반복 실행 될 때마다 변수 선언한 sum에 cnt를 누적해서 입력한 횟수까지 알 수 있게 만들어 줍니다.

반응형