안녕하세요, 프로그래밍 학습자 여러분. 오늘은 C++로 가위바위보 게임을 만들어보며 기본적인 프로그래밍 개념을 배워볼 것입니다. C++은 범용 프로그래밍 언어로, 다양한 소프트웨어 개발에 쓰이며 고성능을 필요로 하는 시스템 프로그래밍에도 널리 활용됩니다.
C++를 배우기 시작하는 프로그래머들에게 가위바위보 게임은 매우 적합한 프로젝트입니다. 왜냐하면 이 게임은 변수, 조건문, 반복문, 함수 등과 같은 기본적인 프로그래밍 개념을 체험하고 이해하는데 도움이 되기 때문입니다.
1. 라이브러리 포함하기
우리의 프로그램에서는 표준 입출력 및 난수 생성을 위한 라이브러리를 포함시켜야 합니다. 다음의 코드를 통해 이 라이브러리들을 포함시킵니다.
#include <iostream>
#include <cstdlib>
#include <ctime>
이렇게 #include를 사용하여 필요한 라이브러리를 포함시키면 해당 라이브러리의 기능들을 우리의 프로그램에서 사용할 수 있게 됩니다.
2. 메인 함수
C++ 프로그램은 항상 main() 함수에서 시작합니다. 이 함수는 프로그램의 진입점 역할을 합니다.
int main() {
// 여기에 코드 작성
return 0;
}
3. 변수 선언 및 초기화
이 게임에서는 사용자의 선택과 컴퓨터의 선택을 저장할 변수가 필요합니다. char 타입의 user_choice 변수는 사용자의 선택을 저장하며, int 타입의 comp_choice 변수는 컴퓨터의 선택을 저장합니다.
char user_choice;
int comp_choice;
4. 난수 생성
컴퓨터의 가위, 바위, 보 선택은 난수를 사용하여 결정됩니다. C++에서는 rand() 함수를 사용해 난수를 생성할 수 있습니다. 이때, srand(time(0)) 코드는 난수 생성의 기반이 되는 '시드(seed)'를 설정하는 역할을 합니다.
srand(time(0));
comp_choice = rand() % 3;
5. 게임 로직 구현
사용자로부터 가위, 바위, 보 중 하나의 입력을 받아, 이를 컴퓨터의 선택과 비교하는 게임 로직을 구현해야 합니다. 이를 위해 while 루프와 if-else 조건문을 사용합니다.
while (true) {
std::cout << "Enter 'r' for rock, 'p' for paper, 's' for scissors, 'q' to quit: ";
std::cin >> user_choice;
if (user_choice == 'q') {
break;
}
// 사용자 선택 변환
if (user_choice == 'r') user_choice = 1;
else if (user_choice == 'p') user_choice = 2;
else if (user_choice == 's') user_choice = 0;
comp_choice = rand() % 3;
// 승패 결정 로직
if (user_choice == comp_choice) {
std::cout << "It's a tie!\n";
}
else if ((user_choice + 1) % 3 == comp_choice) {
std::cout << "You lose!\n";
}
else {
std::cout << "You win!\n";
}
}
위의 코드는 '가위', '바위', '보'를 순환적인 관계로 생각하여 승패를 결정하였습니다. 만약 사용자가 '가위'를 선택하고 컴퓨터가 '바위'를 선택하면, (user_choice + 1) % 3은 comp_choice와 같으므로 사용자는 패배합니다. 사용자가 이기거나 비길 경우에는 다른 분기를 통해 처리됩니다. 이와 같이 나머지 연산자를 이용하면 순환적인 관계를 간단히 표현할 수 있습니다.
6. 전체 코드
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
// 여기에 코드 작성
char user_choice;
int comp_choice;
srand(time(0));
comp_choice = rand() % 3;
while (true) {
std::cout << "Enter 'r' for r, 'p' for paper, 's' for scissors, 'q' to quit: ";
std::cin >> user_choice;
if (user_choice == 'q') {
break;
}
// 사용자 선택 변환
if (user_choice == 'r') user_choice = 1;
else if (user_choice == 'p') user_choice = 2;
else if (user_choice == 's') user_choice = 0;
comp_choice = rand() % 3;
// 승패 결정 로직
if (user_choice == comp_choice) {
std::cout << "It's a tie!\n";
}
else if ((user_choice + 1) % 3 == comp_choice) {
std::cout << "You lose!\n";
}
else {
std::cout << "You win!\n";
}
}
return 0;
}
이 포스팅이 C++에 대한 여러분의 이해를 도와주고, 가위바위보 게임 만들기를 통해 프로그래밍에 대한 흥미를 더욱 끌어올려주길 바라며, 앞으로도 다양한 프로젝트를 통해 여러분의 프로그래밍 실력을 향상해 나가시길 바랍니다.
댓글