미니 프로젝트에서 사용할 퀴즈에 코드 맞추기 퀴즈를 넣고 싶었다. 그 방법을 생각하지 못하던 중 일단 만들었던 별찍기 퀴즈이다. 실제 미니 프로젝트에서는 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(" ","") 을 통해서 띄워쓰기로 인한 오답 문제는 발생하지 않도록 받았다.
이 방법을 썼을 때, 결국 별찍기는 * 에러로 + 찍기가 되었고, 원래도 그랬지만 더 별 볼일 없는 퀴즈가 되었더랬다 ㅎㅎ
독후 기록 : 이펙티브 자바 (0) | 2022.06.05 |
---|---|
Java 2차원 배열 퀴즈_다이아(?) 마름모 만들기, 그리고 수학. (0) | 2021.11.26 |
Java 다중 for 문 초보자를 팁! (0) | 2021.11.25 |
댓글 영역