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문을 사용하시면 가위 바위 보가 아닌 아무거나 입력하여도 참으로 처리되어서 진행되기 때문 입니다.
'명품 C++ programming' 카테고리의 다른 글
명품 C++ programming 실습문제 3장 2번 (0) | 2019.04.06 |
---|---|
명품 C++ programming 실습문제 3장 1번 (0) | 2019.04.06 |
명품 C++ programming 실습문제 2장 14번 (0) | 2019.04.06 |
명품 C++ programming 실습문제 2장 13번 (1) | 2019.04.06 |
명품 C++ programming 실습문제 2장 12번 (0) | 2019.04.06 |