본문 바로가기

카테고리 없음

1~100까지의 랜덤한 난수 맞추기 게임

 

 

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package java1;
import java.util.Scanner;
 
public class minigame {
    static Scanner scanner = new Scanner(System.in);
    
    public static void main(String[] args) {
        
         int random_Answer= (int)(Math.random()*100)+1;
         int user_Num= 0; 
         int chance= 3; 
         String restart;
         
         int min= 0;
         int max= 100;
         
         
         System.out.println("1~100까지의 랜덤 숫자를 맞춰보세요.");
         
        while(true) {
         System.out.printf("기회가 %d회 남았습니다! 숫자를 입력해주세요.(범위: %d ~ %d)> ",chance,min,max);
         user_Num = scanner.nextInt();
    
             if (chance==1) {
                 System.out.printf("기회를 모두 사용하셨습니다ㅠㅅㅜ 정답은 %d입니다!",random_Answer);
                 break; }
         
                 else if(user_Num>random_Answer){
                     max=user_Num-1;
                     chance--;
                     System.out.printf("%d보다 작은 숫자입니다.",user_Num,chance); 
                     continue; }
              
                 else if (user_Num<random_Answer) {
                     min=user_Num+1;
                     chance--;
                     System.out.printf("%d보다 큰 숫자입니다.",user_Num,chance); 
                     continue; }
             
         
                 else if(user_Num!=random_Answer); {
                     System.out.println("정답입니다!");
                     break; }
         }
        
         
                 System.out.println("게임을 다시 시작하시겠습니까? [Y/N]");
                 restart=scanner.next();
         
                     if(restart.equals("Y")) {
                         main(null); }
                         else if(restart.equals("N")) {
                             System.out.println("재미가 없으셨나요ㅠㅡㅠ?? 다음에는 더 재미있는 게임으로 만나요ㅠㅡㅠ"); }
                         else {
                             System.out.println("Y / N으로만 입력해주세요."); 
                             restart= scanner.next();
                 }
             }
        }
 
cs
 

// 강사님ver

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package day_06;
import java.util.Scanner;
 
public class Day05homework4 {
    
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
        
        char yn= 'y'; // 재실행 여부를 물어볼떄 사용됨
    
        do{
        
        int number= 0; // 시스템이 난수를 만든다.
        int userNum= 0; // 사용자가 입력한 수 
        int cnt= 5; // 시도 가능 횟수
        
        int min= 1, max= 100; // 입력 유효 범위
        
        // 시스템이 난수를 만들어준다. 
        number= min + (int)Math.abs(Math.floor(Math.random()*max)); //min~ max까지의 난수
        
        System.out.printf("시스템이 번호를 생성하였습니다.(힌트:%d)\n",number);
        System.out.println("시스템이 선택한 번호를 맞춰보세요!");
        
        // 여기서부터 cnt만큼 반복한다.
        while(cnt>0) {
            System.out.printf("사용자 입력(%d~%d사이)",min,max);
            userNum= scanner.nextInt();
            
            //유효성 검사
            while(!(userNum>=min && userNum<=max)) {
                System.out.println("입력 가능한 범위를 초과하였습니다.");
                System.out.printf("다시 입력(%d~%d사이): ",min,max);
                userNum= scanner.nextInt();
            }
                System.out.println("사용자 번호 입력 성공!");
        
        if(userNum == number) {
            System.out.println("정답입니다.");
            break;
            
            }else if(userNum > number) {
                System.out.println("너무 큰 숫자를 입력했습니다.");
                max= userNum-1;
            }else if(userNum < number) { 
                System.out.println("너무 작은 숫자를 입력했습니다.");
                min= userNum+1; 
            }
        
        cnt--;
        System.out.println("남은 시도 횟수:" + cnt);
        
        }
        if(cnt == 0) {
            System.out.println("기회가 모두 소진되어 실격했습니다.");
        }
        
        System.out.print("게임을 다시 시도하시겠습니까?[y/n]");
        yn= scanner.next().charAt(0); // 첫글자만 온다. charAt(0)
        while(!(yn =='y' || yn=='n')) {
            System.out.println("y 또는 n만 입력하세요.");
            System.out.print("게임을 다시 시도하시겠습니까?[y/n]");
            yn= scanner.next().charAt(0); 
        }
    }while(yn=='y');
    System.out.println("게임 종료~");
    System.out.println("다음에 또 만나용");
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs