강께르의 개발일지
[C++] 숫자 맞추기 게임 본문
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. 결과
'연습' 카테고리의 다른 글
[C++] 몬스터와 일대일 턴제 전투 게임_구조체로 수정 (0) | 2021.06.12 |
---|---|
[C++] 숫자야구 게임 (0) | 2021.06.08 |
[C++] 몬스터와 일대일 턴제 전투 게임 (0) | 2021.06.08 |
[C++] 가위바위보 게임 (0) | 2021.06.03 |
[C++] cout을 이용한 캐릭터 그리기 (0) | 2021.06.01 |