반응형
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
|
#include <iostream>
#include <time.h>
int main() {
enum RSP {
RSP_R,
RSP_S,
RSP_P,
RSP_END
};
srand((unsigned int)time(NULL));
int player, npc;
while (true) {
std::cout << "0. Rock" << std::endl;
std::cout << "1. Scissors" << std::endl;
std::cout << "2. Paper" << std::endl;
std::cout << "3. Exit" << std::endl;
std::cout << "0 ~ 3까지 번호를 선택해주세요 : ";
std::cin >> player;
std::cout << std::endl;
if (player < RSP_R || player > RSP_END) {
std::cout << "Error" << std::endl;
system("pause");
continue;
}
else if (player == RSP_END) {
std::cout << "게임을 종료합니다." << std::endl;
break;
}
switch (player) {
case RSP_R:
std::cout << "player : Rock" << std::endl;
break;
case RSP_S:
std::cout << "player : Scissors" << std::endl;
break;
case RSP_P:
std::cout << "player : Paper" << std::endl;
break;
}
npc = rand() % 3;
switch (npc) {
case RSP_R:
std::cout << "AI : Rock" << std::endl;
break;
case RSP_S:
std::cout << "AI : Scissors" << std::endl;
break;
case RSP_P:
std::cout << "AI : Paper" << std::endl;
break;
}
int condition = player - npc;
switch (condition)
{
case 0:
std::cout << "비겼습니다!" << std::endl;
break;
case 1:
case -2:
std::cout << "졌습니다!" << std::endl;
break;
default:
std::cout << "이겼습니다!" << std::endl;
break;
}
std::cout << std::endl;
}
}
|
cs |
기본적인 가위바위보 게임 구현입니다.
먼저 열거형을 선언하여 가위, 바위, 보, 끝내기 4가지를 0~4의 정수값에 대응하여 지정합니다.
위의 코드를 이용하여 rand의 seed값을 계속하여 변경합니다.
seed값을 계속 변경하여 주어야 실행할 때마다 rand() 함수의 값이 변경됩니다.
26~30 라인은 사용자가 0~4 이외의 값을 입력했을 때의 예외처리 입니다.
32~35 라인은 사용자가 4를 입력하여 게임을 끝내는 경우의 처리입니다.
37~46 라인은 사용자가 입력한 숫자에 해당하는 가위, 바위, 보 문자열을 출력합니다.
49 라인은 AI가 낼 숫자값을 지정해줍니다. rand() 함수로 랜덤 값을 받아온 후 나머지 연산을 이용해 0~2까지의 값만 가지도록 합니다.
51~61 라인은 마찬가지로 AI가 낸 숫자에 해당하는 가위, 바위, 보 문자열을 출력해주는 코드입니다.
플레이어와 AI가 낸 숫자를 각각 비교하여 모두 조건문으로 나타낼 경우 9가지의 경우로, 코드가 비효율적으로 길어지게 됩니다.
따라서 가위바위보 삼각관계의 규칙을 이용하여 다음과 같이 조건문을 지정할 수 있습니다.
출처 : (7) C언어/C++ 강의 9화 while문과 가위바위보 게임 [어소트락 게임아카데미] - YouTube
반응형
'C,C++ > 코드정리' 카테고리의 다른 글
[C/C++] 빙고 게임 구현 (0) | 2022.09.07 |
---|---|
[C/C++] 숫자 퍼즐 게임 구현 (0) | 2022.09.07 |
[C/C++] 야구게임 구현 (0) | 2022.09.07 |
[C/C++] 로또 구현 (셔플 알고리즘) (0) | 2022.09.07 |
[C/C++] 별찍기 구현 (0) | 2022.09.07 |
댓글