간단한 프로그램
가위바위보 구현하기
ShadowEye
2021. 6. 3. 16:45
#include<iostream>
using namespace std;
static const char* RockPaperScissors[] = { "가위", "바위", "보" };
int main() {
int player, computer;
int match = 1;
int playerWinCount = 0, computerWinCount = 0, drawCount = 0;
srand((int)time(NULL));
while (match < 11)
{
cout << "========================================================" << endl;
cout << "매치 넘버 : " << match << endl;
cout << endl;
cout << "당신의 가위바위보를 선택하세요 (1: 가위, 2: 바위, 3: 보) : ";
cin >> player;
computer = rand() % 3;
cout << endl;
player--;
if (player < 0 || player > 2)
{
cout << "해당 입력값에 대응하는 손모양이 없습니다 1 2 3중 하나를 입력해주세요." << endl;
continue;
}
int result = player - computer;
cout << "당신의 손모양은 " << RockPaperScissors[player] << " 이며 컴퓨터의 손모양은 " << RockPaperScissors[computer] << " 이므로 ";
if (result == 0)
{
cout << "당신은 비겼습니다." << endl;
drawCount++;
}
else if (result == -1 || result == 2) {
cout << "컴퓨터가 이겼습니다." << endl;
computerWinCount++;
}
else {
cout << "당신이 이겼습니다." << endl;
playerWinCount++;
}
match++;
}
cout << "나의 승수 : " << playerWinCount << endl;
cout << "컴퓨터의 승수 : " << computerWinCount << endl;
cout << "비긴 횟수 : " << drawCount << endl;
cout << "승률 : " << playerWinCount * 10 << "%" << endl;
}
string 배열을 사용해서 인덱스를 가위 바위 보로 변환
플레이어의 가위바위보를 인덱스화 한후 컴퓨터와 빼서 나온값을 기준으로 결과 출력
결과 값이 같을경우 비기기떄문에 0 을출력
결과값이 음수거나 2일경우 컴퓨터가 이김
그외에는 플레이어가 이김
예외처리(123 외 숫자입력)를위해 다른 값이 들어올경우 에러발생문을 출력하고 continue를 써서 재실행