가위 바위 보

Crat3 ㅣ 2023. 8. 7. 17:07

1. enum을 사용하지 않고 만들기

#include <iostream>
using namespace std;


int main()
{
	srand(unsigned int(time(0)));

	while (true)
	{
		int rcp;

		cout << "가위(0), 바위(1), 보(2) 중 하나를 선택하세요." << endl;
		cout << "> ";
		cin >> rcp;

		int atk = rand() % 3;

		switch (rcp)
		{
		case 0:
			if (atk == 0)
				cout << "비김" << endl << "상대방의 선택 : " << atk << endl << endl;
			else if (atk == 1)
				cout << "짐" << endl << "상대방의 선택 : " << atk << endl << endl;
			else
				cout << "이김" << endl << "상대방의 선택 : " << atk << endl << endl;
			break;

		case 1:
			if (atk == 0)
				cout << "이김" << endl << "상대방의 선택 : " << atk << endl << endl;
			else if (atk == 1)
				cout << "비김" << endl << "상대방의 선택 : " << atk << endl << endl;
			else
				cout << "짐" << endl << "상대방의 선택 : " << atk << endl << endl;
			break;

		case 2:
			if (atk == 0)
				cout << "짐" << endl << "상대방의 선택 : " << atk << endl << endl;
			else if (atk == 1)
				cout << "이김" << endl << "상대방의 선택 : " << atk << endl << endl;
			else
				cout << "비김" << endl << "상대방의 선택 : " << atk << endl << endl;
			break;

		default:
			cout << "유효하지 않은 숫자를 입력했습니다." << endl << endl;
			break;
		}
	}

}

 

2. enum을 사용하여 만들기

#include <iostream>
using namespace std;

enum RCP
{
	RCP_SCISSORS = 0,
	RCP_ROCK = 1,
	RCP_PAPER = 2,
};

int main()
{
	srand(unsigned int(time(0)));

	while (true)
	{
		int rcp;

		cout << "가위(0), 바위(1), 보(2) 중 하나를 선택하세요." << endl;
		cout << "> ";
		cin >> rcp;

		int atk = rand() % 3;

		switch (rcp)
		{
		case RCP_SCISSORS:
			if (atk == RCP_SCISSORS)
				cout << "비김" << endl << "상대방의 선택 : " << atk << endl << endl;
			else if (atk == RCP_ROCK)
				cout << "짐" << endl << "상대방의 선택 : " << atk << endl << endl;
			else
				cout << "이김" << endl << "상대방의 선택 : " << atk << endl << endl;
			break;

		case RCP_ROCK:
			if (atk == RCP_SCISSORS)
				cout << "이김" << endl << "상대방의 선택 : " << atk << endl << endl;
			else if (atk == RCP_ROCK)
				cout << "비김" << endl << "상대방의 선택 : " << atk << endl << endl;
			else
				cout << "짐" << endl << "상대방의 선택 : " << atk << endl << endl;
			break;

		case RCP_PAPER:
			if (atk == RCP_SCISSORS)
				cout << "짐" << endl << "상대방의 선택 : " << atk << endl << endl;
			else if (atk == RCP_ROCK)
				cout << "이김" << endl << "상대방의 선택 : " << atk << endl << endl;
			else
				cout << "비김" << endl << "상대방의 선택 : " << atk << endl << endl;
			break;

		default:
			cout << "유효하지 않은 숫자를 입력했습니다." << endl << endl;
			break;
		}
	}

}

'복습' 카테고리의 다른 글

함수 객체 ( functor ; 펑터 )  (0) 2023.10.06
함수 포인터  (0) 2023.10.06
우선순위 큐 (priority_queue)  (1) 2023.10.05
산술연산 시 주의점  (0) 2023.08.07
16진법과 2진법의 관계  (0) 2023.08.07