Print Friendly and PDF

C++/C++입문

[C++] while을 이용한 가위바위보 게임 실습

나는야 개발자 2025. 3. 22. 17:17
반응형

가위바위보 실습

//가위 바위 보 열거체
enum SRP
{
	SRP_SCISSORS = 0,
	SRP_ROCK,
	SRP_PAPER,
    SRP_END
};

- 열거체 선언

 

코드 작성

//난수테이블 생성
srand((unsigned int)time(0));

//가위바위보 게임 만들기 
int srp = 0;
int iAI = 0;
while (true)
{
	cout << "가위(0) 바위(1) 보(2) 끝내기(3) 선택하시오 : ";
	cin >> srp;
	cout << "Player : " << (SRP)srp << endl;

	//잘못된 값 입력 시 처리
	//continue : 다음 반복문으로 넘어가는 명령어
	if (srp == SRP_END)
	{
		cout << "가위바위보 게임을 종료합니다." << endl;
		break;
	}
	else if (srp < SRP_SCISSORS || srp >= SRP_END)
	{
		cout << "잘못된 값을 입력하셨습니다." << endl;
		continue;
	}


	//난수 가위바위보 선택
	//SRP_END를 넣으면 0~2까지의 난수가 생성
	iAI = rand() % SRP_END;

	cout << "AI : " << (SRP)iAI << endl;

	//승자결정
	switch (srp)
	{
	case SRP_SCISSORS:
		if (iAI == SRP_SCISSORS)
			cout << "비겼습니다." << endl;
		else if (iAI == SRP_ROCK)
			cout << "졌습니다." << endl;
		else if (iAI == SRP_PAPER)
			cout << "이겼습니다." << endl;
		break;
	case SRP_ROCK:
		if (iAI == SRP_SCISSORS)
			cout << "이겼습니다." << endl;
		else if (iAI == SRP_ROCK)
			cout << "비겼습니다." << endl;
		else if (iAI == SRP_PAPER)
			cout << "졌습니다." << endl;
		break;
	case SRP_PAPER:
		if (iAI == SRP_SCISSORS)
			cout << "졌습니다." << endl;
		else if (iAI == SRP_ROCK)
			cout << "이겼습니다." << endl;
		else if (iAI == SRP_PAPER)
			cout << "비겼습니다." << endl;
		break;
	}
}

 

 

결과

반응형

'C++ > C++입문' 카테고리의 다른 글

[C++] do while문  (0) 2025.03.25
[C++] for문  (0) 2025.03.24
[C++] 반복문과 while문  (0) 2025.03.22
[C++] Swich문과 열거체  (0) 2025.03.22
[C++] 난수  (0) 2025.03.22