수업에서 배웠던 문제 중, 다시 풀어봤을 때 조금 힘들었던 문제

 

문제 
사용자가 틀릴 때까지 구구단 문제를 출제하는 프로그램 구현
(2 x 1 부터 19 x 9 까지 구현)

사용자가 3문제를 틀리면 게임오버! 라는 메세지를 출력한 뒤 종료
종료 전에 정답 개수와 점수를 출력

[1] 일반 정답 +10점
[2] 어려운 문제 정답은 5점 추가 (총 15점) 11단부터~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

정답 
Scanner sc = new Scanner(System.in);
		
	int cnt = 0;	// 문제 횟수
	int tot = 0;	// 점수
	int cor = 0;	// 정답 갯수
	int over = 2;	// 오답 기회

    while(true) {
        int a = (int)(Math.random() * 14) + 2;
        int b = (int)(Math.random() * 9) + 1;

        cnt++;

        int com = a * b;

        System.out.print("\n" + cnt + ". " + a + " × " + b + " = ");
        int user = sc.nextInt();

        if(com == user) {
            cor++;
            tot += 10;
            System.out.println("정답! 10점 획득!");
            if(a >= 11) {
                System.out.println("어려운 문제! 5점 추가 획득!");
                tot += 5;
            }
        }else {
            tot -= 5;
            if(over == 0) {
                System.out.println("게임 오버!");
                System.out.println("총 문제 갯수 : " + cnt + "개");
                System.out.println("총 정답 갯수 : " + cor + "개");
                System.out.println("총 점수 : " + tot + "점");
                break;
            }
            System.out.println("오답! 5점 감점! " + over + "번 남았습니다.");
            over --;
        }
    }
}

 

** 반복문을 만들 때, 문제인 a와 b를 정의부에 두고 반복문을 실행하려했기 때문에 고정된 문제가 반복돼어 while문 안에 while문을 또 쓰는 상황까지 발생...ㅎ;; 단순히 문제를 while문 안에 두면 반복되면서 새로운 문제가 생성 됨

'IT 언어 > Java' 카테고리의 다른 글

[Java] 이차원 배열 --*Q/A  (0) 2023.12.11
[Java] 배열 --*Q/A  (0) 2023.12.01
[Java] 랜덤 Math.radom() --*Q/A  (2) 2023.11.27
[Java] 제어문 (조건문, 선택문, 반복문) --*Q/A  (0) 2023.11.27
[Java] 입출력(I/O) --*Q/A  (0) 2023.11.24

+ Recent posts