*JAVA*/practice_과제

211102

깐부로부터 2021. 11. 4. 00:58

재밌는 사칙연산게임 만들기

 

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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package practice.arithmeticoperation;
 
import java.util.Scanner;
 
public class ArithmeticGame {
    Scanner sc = new Scanner(System.in);
    
    public void method1() {        
        
        System.out.println("즐겁게 문제를 푸시다가 지겨우면 0을 누르세요~");
        System.out.println("# 엔터를 누르면 시작합니다.");
        System.out.println("==============================\n");
        String enter = sc.nextLine();
        
        while(true) {
                if(enter.equals("0")){
                System.out.println("종료합니다.");
                                return;}
                    
            elseSystem.out.print("#난이도를 입력하세요! [상, 중, 하]\n>>");
                    String level = sc.next();
        
                    switch(level) {
                    case "상" : high(); return;//완벽한 프로그램 종료를 위해 break;가 아닌 return;문을 써준다.
                    case "중" : middle(); return;
                    case "하" : low(); return;
                    default : System.out.println("저세상 난이도를 고르셨습니다. 다시 입력 ㄱㄱ \n");
                                break;// 스위치문만 빠져나가고 다시 와일문 가동                            
                }// 스위치문 끝
            
    
            }/*이프문 끝*/
        
        } /*와일문 끝*/ 
 
}    
        
        
        public void high() {
            
            System.out.println("상급 난이도입니다. 1 ~ 1000 범위로 출제됩니다.\n");    
            
            int[] rightWrong = {0,0};// 정답, 오답카운트셀 배열                
            int i = 0;//퀴즈앞 넘버                
            
            while(true) {                
                
                String[] ope = {"+""-""*""/"}; //연산자 선언
                int j = (int)(Math.random()*4);    // 연산자 인덱스 랜덤으로 받기                
                int    num1 = (int)(Math.random()*1000)+1;// 첫번째 정수 랜덤으로 받기
                int    num2 = (int)(Math.random()*1000)+1;// 두번째 정수 랜덤으로 받기
                int[] result = {(num1+num2), (num1-num2), (num1*num2), (int)(num1/num2)}; //사칙연산에 따른 결과값    나누기 몫 0. 소수점 나오면 그냥 0으로 치게 int형으로 바꿈    
                                
                System.out.print("Q"+ i +")" + num1 + ope[j] + num2 + "=" + "?\n>> ");
                int user = sc.nextInt();                                
                    if((user == result[j])) {
                        System.out.println("#정답입니다!\n");
                        rightWrong[0]+=1;
                        i++;//퀴즈넘버 카운트
                    }else if(user != result[j] && user != 0) {    
                        System.out.println("오답인디요..\n");    
                        rightWrong[1]+=1;
                        i++;//퀴즈 넘버 카운트
                    }else if(user == 0) {                    
                        System.out.println("============================");
                        System.out.println("# 정답 횟수: " + rightWrong[0+ "회," + "오답 횟수: " + rightWrong[1]);
                                                break//와일문 탈출                    
                    }/*이프 엘스문 끝*/                
            
            }//와일문 끝            
            
        }// high()메소드 끝
            
        
        
        public void middle() {
            
            System.out.println("중급 난이도입니다. 1 ~ 100 범위로 출제됩니다.\n");    
            
            int[] rightWrong = {0,0};// 정답, 오답카운트하는 배열            
            int i = 0;//퀴즈앞 넘버                
            
            while(true) {                
                
                String[] ope = {"+""-""*""/"}; //연산자 선언
                int j = (int)(Math.random()*4);    // 연산자 인덱스 랜덤으로 받기                
                int    num1 = (int)(Math.random()*100)+1;// 첫번째 정수 랜덤으로 받기
                int    num2 = (int)(Math.random()*100)+1;// 두번째 정수 랜덤으로 받기
                int[] result = {(num1+num2), (num1-num2), (num1*num2), (int)(num1/num2)}; //사칙연산에 따른 결과값    나누기 몫 0. 소수점 나오면 그냥 0으로 치게 int형으로 바꿈    
                                
                System.out.print("Q"+ i +")" + num1 + ope[j] + num2 + "=" + "?\n>> ");
                int user = sc.nextInt();                                
                    if((user == result[j])) {
                        System.out.println("#정답입니다!\n");
                        rightWrong[0]+=1;
                        i++;//퀴즈넘버 카운트
                    }else if(user != result[j] && user != 0) {    
                        System.out.println("오답인디요..\n");    
                        rightWrong[1]+=1;
                        i++;//퀴즈 넘버 카운트
                    }else if(user == 0) {                    
                        System.out.println("============================");
                        System.out.println("# 정답 횟수: " + rightWrong[0+ "회," + "오답 횟수: " + rightWrong[1]);
                                                break//와일문탈출                    
                    }/*이프 엘스문 끝*/                
            
            }//와일문 끝            
            
        }// middle()메소드 끝
            
        
        
        public void low() {
            
            System.out.println("하급 난이도입니다. 1 ~ 20 범위로 출제됩니다.\n");    
            
            int[] rightWrong = {0,0};// 정답, 오답카운트 하는 배열            
            int i = 0;//퀴즈앞 넘버                
            
            while(true) {                
                
                String[] ope = {"+""-""*""/"}; //연산자 선언
                int j = (int)(Math.random()*4);    // 연산자 인덱스 랜덤으로 받기                
                int    num1 = (int)(Math.random()*20)+1;// 첫번째 정수 랜덤으로 받기
                int    num2 = (int)(Math.random()*20)+1;// 두번째 정수 랜덤으로 받기
                int[] result = {(num1+num2), (num1-num2), (num1*num2), (int)(num1/num2)}; //사칙연산에 따른 결과값    나누기 몫 0. 소수점 나오면 그냥 0으로 치게 int형으로 바꿈    
                                
                System.out.print("Q"+ i +")" + num1 + ope[j] + num2 + "=" + "?\n>>");
                int user = sc.nextInt();                                
                    if((user == result[j])) {
                        System.out.println("#정답입니다!\n");
                        rightWrong[0]+=1;
                        i++;//퀴즈넘버 카운트
                    }else if(user != result[j] && user != 0) {    
                        System.out.println("오답인디요..\n");    
                        rightWrong[1]+=1;
                        i++;//퀴즈 넘버 카운트
                    }else if(user == 0) {                    
                        System.out.println("============================");
                        System.out.println("# 정답 횟수: " + rightWrong[0+ "회," + "오답 횟수: " + rightWrong[1]);
                                                break//브레이크문 탈출                    
                    }/*이프 엘스문 끝*/                
            
            }//와일문 끝            
            
        }// low()메소드 끝
 
cs

'*JAVA* > practice_과제' 카테고리의 다른 글

211026  (0) 2021.10.26
211024  (0) 2021.10.24
211023 Class 만들어보기  (0) 2021.10.24
211020  (0) 2021.10.20