강께르의 개발일지

[C++] 숫자 맞추기 게임 본문

연습

[C++] 숫자 맞추기 게임

강께르 2021. 6. 4. 12:05

1. 이것은 무엇인가?

 while문과는 또 다른 반복문인 for문을 이용해 반복해서 사용자의 숫자 입력을 받아서 rand()를 통해 정해진 숫자를 마주어 마치 컴퓨터가 정해놓은 숫자를 사용자가 정해진 횟수를 안에 맞추는 게임이다. 컴퓨터는 rand()를 통해 0~999 중에 하나를 가지고, 플레이어는 10번의 기회 안에 맞춘다. 플레이어의 입력에 따라 컴퓨터는 가지고 있는 수와 대소 관계를 비교해서 큰지, 작은지 혹은 정답인지 알려준다. 만약, 0~999 이외의 값을 플레이어가 입력한다면 다시 입력을 받는다.

 

2. 새로 알게 된 점

 기존에 알던 것을 응용한 게임이므로 새로 알게 된 점은 없다.

 

3. 코드

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

int main(void)
{
	cout << "====================================" << endl;
	cout << "======= 숫 자 맞 추 기 게 임 =======" << endl;
	cout << "====================================" << endl << endl;

	srand((unsigned int)time(NULL));
	int playerChooseNum;
	int computerChooseNum = rand() % 1000;
	int i;
	for (i = 0; i < 10; i++)
	{
		cout << "====================================" << endl;
		cout << "============ " << i + 1 << "번째 입력 ============" << endl;
		cout << "0 ~ 999 중에서 숫자를 고르세요 : ";
		cin >> playerChooseNum;
		while ((playerChooseNum > 999) || (playerChooseNum < 0))
		{
			cout << "0 ~ 999 중에서 숫자를 다시 입력 : ";
			cin >> playerChooseNum;
		}
		cout << "플레이어가 고른 숫자 : " << playerChooseNum << endl;
		cout << "컴퓨터의 대답 : ";
		if (computerChooseNum == playerChooseNum)
		{
			cout << "CORRECT!" << endl;
			cout << "컴퓨터가 고른 숫자 : " << computerChooseNum << endl;
			cout << i + 1 << "번만에 정답을 찾았습니다!" << endl;
			cout << "====================================" << endl;
			break;
		}
		else if (computerChooseNum > playerChooseNum)
			cout << "UP" << endl;
		else if (computerChooseNum < playerChooseNum)
			cout << "DOWN" << endl;
	}
	if (playerChooseNum != computerChooseNum)
	{
		cout << "====================================" << endl;
		cout << "끝내 맞추지 못했습니다..." << endl;
		cout << "컴퓨터가 고른 숫자 : " << computerChooseNum << endl;
		cout << "====================================" << endl;
	}
}

 

4. 결과

ㄲㅂ... 다음에 다시 도전하겠다...