1. 문제

 

두 사람이 하는 가위, 바위, 보 게임을 만들어보자. 두 사람의 이름은 '사또'와 처녀 귀신 '아랑'으로 한다. 먼저 "사또>>"를 출력하고 '사또'로부터 "가위", "바위", "보" 중 하나의 문자열을 입력받고, 다시 "아랑>>"을 출력하고 '아랑'으로부터 "가위", "바위", "보" 중 하나의 문자열을 입력받는다. 누가 이겼는지 판단하여 승자를 출력한다. 비기게 되면 "비겼습니다"라고 출력하고 프로그램을 종료한다.

 

 

2. 결과

 

 

 

3. 코드

 

#include <iostream>
#include <string>
using namespace std;

int main()
{
	string s,o;
	cout << "가위 바위 보 게임을 합니다. 가위, 바위, 보 중에서 입력하세요." << endl;
	cout << "사또>>" ;
	getline(cin, s);
	cout << "아랑>>";
	getline(cin, o);

	if( s == "바위" ) {
		if( o == "바위" ) cout << "비겼습니다." << endl;
		else if( o == "가위" ) cout << "사또가 이겼습니다." << endl;
		else if( o == "보" ) cout << "아랑이 이겼습니다." << endl;
	}
	else if ( s == "가위" ) {
		if( o == "가위" ) cout << "비겼습니다." << endl;
		else if( o == "보" ) cout << "사또가 이겼습니다." << endl;
		else if( o == "바위" ) cout << "아랑이 이겼습니다." << endl;
	}
	else if ( s == "보" ) {
		if( o == "보" ) cout << "비겼습니다." << endl;
		else if( o == "바위" ) cout << "사또가 이겼습니다." << endl;
		else if( o == "가위" ) cout << "아랑이 이겼습니다." << endl;
	}
}

 

 

4. 설명

 

string 변수를 사용하여서 간단하게 해결하실 수 있습니다.

 

 

문자열 변수는 저장된 문자가 같은지 검사할려면 strcmp()함수를 사용해야 했지만 string 변수는 "=="(비교연산자)로 비교가 가능합니다.

 

※ 이 상황에서 else문을 사용하시면 안됩니다. else문을 사용하시면 가위 바위 보가 아닌 아무거나 입력하여도 참으로 처리되어서 진행되기 때문 입니다.

+ Recent posts