상세 컨텐츠

본문 제목

자바 +찍기 1탄 코드 퀴즈

Java

by Sam_Park 2021. 12. 16. 23:31

본문

미니 프로젝트에서 사용할 퀴즈에 코드 맞추기 퀴즈를 넣고 싶었다. 그 방법을 생각하지 못하던 중 일단 만들었던 별찍기 퀴즈이다. 실제 미니 프로젝트에서는 java.io.file 을 통해 코드를 입력하여 실행 확인하는 코드를 사용하였고, 주말에 만든 아래 코드는 사용되지 못했다. 아쉬울 것도 없지만 아쉬워서 올렸다.

 

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
public static boolean question() {
        Scanner sc = new Scanner(System.in);
        String answer = "";
        int fail = 0;
        int win = 0;
 
        while (fail < 3 || win > 0) {
            System.out.println("공포의! '+' 찍기!! 코드치기!!! '}'까지 총 6줄 작성하기!!");
            System.out.println("+++++");
            System.out.println("++++");
            System.out.println("+++");
            System.out.println("++");
            System.out.println("+");
            System.out.println();
            System.out.println("단, 1: 이중 for문을 사용하고 // 2: 숫자는 0 부터 5 까지, 0 부터 4까지,");
            System.out.println("//3: '+' 기호를 써서 // 4: 한 줄 씩 출력문을 작성하고 'enter!' \n start!!");
 
            System.out.println("\n public static void main(String[] args) {");
            for (int i = 1; i <= 6; i++) {
                answer = sc.nextLine();
                String mAnswer = answer.replaceAll(" """); // 띄어쓰기가 다른 것은 없애서 잡아줌
 
                if (i == 1 && mAnswer.equals("for(inti=0;i<5;i++){")) {
                    System.out.println(i + "번째 줄 성공! 다음 줄 ");
                } else if (i == 2 && mAnswer.equals("for(intj=0;j<4;j++){")) {
                    System.out.println(i + "번째 줄 성공! 다음 줄 ");
 
                } else if (i == 3 && mAnswer.equals("System.out.print(\"+\");")) {
                    System.out.println(i + "번째 줄 성공! 다음 줄 ");
 
                } else if (i == 4 && mAnswer.equals("}")) {
                    System.out.println(i + "번째 줄 성공! 다음 줄 ");
 
                } else if (i == 5 && mAnswer.equals("System.out.println();")) {
                    System.out.println(i + "번째 줄 성공! 다음 줄 ");
 
                } else if (i == 6 && mAnswer.equals("}")) {
                    System.out.println("    }\n}\n" + i + "번째 줄 성공! 별찍기 성공!! ");
                    win++;
                } else {
                    fail++;
                    System.out.println("실패!" + fail + "회!");
                    System.out.printf("\n\n\n");
                    System.out.println("다시 푸십시오!");
                    break;
                }
            }
 
        }
        sc.close();
        if(win == 1) {
            System.out.println("증거를 획득하였습니다!");
            return true;
        } else {
            System.out.println("기회를 소진하셨습니다. 종료!!");
            return false;
        }
 
    }
 
cs

String으로 입력 받기 때문에 코드가 심하게 길어지지 않으려면 한 가지 방법으로만 정답을 받았다. 그래서 단서 조건이 많아졌긴 하지만, answer.raplacAll(" ","") 을 통해서 띄워쓰기로 인한 오답 문제는 발생하지 않도록 받았다.

 

이 방법을 썼을 때, 결국 별찍기는 * 에러로 + 찍기가 되었고, 원래도 그랬지만 더 별 볼일 없는 퀴즈가 되었더랬다 ㅎㅎ

 

관련글 더보기

댓글 영역