궁금한 사항은 댓글로 남겨주세요. 소스마다 주석을 남겼으니 참고하시면 됩니다.
|
소스
Rock_Paper_Scissors.java
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
|
public class Rock_Paper_Scissors {
//가위, 바위, 보를 정수형과 맵핑하기 위하여 final 변수 설정
private static final int SCISSORS = 1; //가위
private static final int ROCK = 2; //바위
private static final int PAPER = 3; //보
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.println("경기 시작 : 1, 종료 : 2");
if(scanner.nextInt() > 1) break;
int win =0; //이긴 수
int compare = 0; //비긴 수
int fail = 0; //패배 수
int random = 0; //컴퓨터가 낸 값
int user = 0; //유저가 낸 값
for(int idx=0; idx < 10; idx++) {
int ret = 0; //가위바위보 결과
//컴퓨터 가위/바위/보 중에 랜덤으로 생성
System.out.println("가위 바위 보중에 한가지를 선택하세요. (가위 : 1, 바위 : 2, 보 : 3)");
//유저각 낸 값 저장
user = scanner.nextInt();
//가위바위보 결과를 저장한다.
ret = result(user, random);
if(ret == 0) {
win++;
}else if(ret == 1) {
fail++;
}else if(ret == 2) {
compare++;
}
}
System.out.println("총 " + win + "승, " + fail + "패, " + compare + "무 입니다.");
}
}
/**
*
* @param user 사용자가 낸 값
* @param computer 컴퓨터가 낸 값
* @return int 유저가 이겼는지(0. 승리, 1. 패배, 2. 비김)
*/
public static int result(int user, int computer) {
int ret = 0;
//비겼을 경우를 최우선으로 비교한다
if(user == computer ) {
System.out.println("비겼습니다.");
ret = 2;
return ret;
}
//유저가 가위를 냈다면
//컴퓨터가 낸 값이 바위와 보 둘중에 하나이므로 비교하여 승리, 패배결정
if(user == SCISSORS) {
System.out.print("유저 : 가위 ,");
if(computer == ROCK) {
System.out.println("컴퓨터 : 바위 >>> 결과 : 패배");
ret = 1;
}else {
System.out.println("컴퓨터 : 보 >>> 결과 : 승리");
ret = 0;
}
}
//유저가 바위를 냈다면
//컴퓨터가 낸 값이 가위와 보 둘중에 하나이므로 비교하여 승리, 패배결정
if(user == ROCK) {
System.out.print("유저 : 바위 ,");
if(computer == PAPER) {
System.out.println("컴퓨터 : 보 >>> 결과 : 패배");
ret = 1;
}else {
System.out.println("컴퓨터 : 가위 >>> 결과 : 승리");
ret = 0;
}
}
//유저가 보를 냈다면
//컴퓨터가 낸 값이 가위와 바위 둘중에 하나이므로 비교하여 승리, 패배결정
if(user == PAPER) {
System.out.print("유저 : 보, ");
if(computer == SCISSORS) {
System.out.println("컴퓨터 : 가위 >>> 결과 : 패배");
ret = 1;
}else {
System.out.println("컴퓨터 : 바위 >>> 결과 : 승리");
ret = 0;
}
}
//결과 리턴
return ret;
}
}
|
결 과
