728x90
안녕하세요!
이번에는 C++ 언어를 사용하여 숫자 맞추기 게임을 구현해보겠습니다.
사용자가 랜덤으로 생성된 숫자를 맞추는 게임입니다.
예제 코드
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int generateRandomNumber()
{
srand(time(0));
return rand() % 100 + 1;
}
void playGame()
{
int secretNumber = generateRandomNumber();
int guess;
int attempts = 0;
cout << "1부터 100 사이의 숫자를 맞춰보세요!" << endl;
while (true)
{
cout << "예상한 숫자를 입력하세요: ";
cin >> guess;
attempts++;
if(guess < 1 || guess >100 )
{
continue;
}
if (guess == secretNumber)
{
cout << "정답입니다! 축하합니다." << endl;
cout << "시도 횟수: " << attempts << endl;
break;
}
else if (guess < secretNumber)
{
cout << "더 큰 수를 입력해보세요." << endl;
}
else
{
cout << "더 작은 수를 입력해보세요." << endl;
}
}
}
int main()
{
playGame();
return 0;
}
<코드 해석>
int generateRandomNumber()
{
srand(time(0));
return rand() % 100 + 1;
}
- 1부터 100 사이의 난수를 생성하여 반환하는 함수입니다.
srand(time(0));
- 난수 발생기를 초기화합니다. 시간을 기준으로 난수를 생성하기 위해 사용됩니다.
rand() % 100 + 1
- 1부터 100 사이의 난수를 생성합니다.
- (+ 1을 하지않으면 0부터 시작하게 됩니다.)
void playGame()
{
//내용 생략
}
- 숫자 맞추기 게임을 진행하는 함수입니다.
int secretNumber = generateRandomNumber();
- 비밀 숫자를 생성하는 함수를 호출하고, secretNumber에 반환값을 저장합니다.
int guess;
- 사용자의 추측 숫자를 저장할 변수입니다.
int attempts = 0;
- 시도 횟수를 저장할 변수입니다.
cout << "1부터 100 사이의 숫자를 맞춰보세요!" << endl;
- "1부터 100 사이의 숫자를 맞춰보세요!"라는 메시지를 출력합니다.
while (true)
{
//내용 생략
}
- while의 조건을 항상 true로 설정 하여 무한루프를 생성하고, 루프를 통해 게임을 진행합니다.
cout << "예상한 숫자를 입력하세요: ";
- "예상한 숫자를 입력하세요: "라는 메시지를 출력합니다.
cin >> guess;
- 사용자가 추측한 숫자를 입력받습니다.
attempts++;
- 시도 횟수를 증가시킵니다.
if(guess < 1 || guess >100 )
{
continue;
}
- 사용자가 추측한 정답이 1에서 100사이인지 판별하는 조건문 입니다.
- 반복문 내에서 continue 키워드가 실행되면 그 자리에서 부터 아래의 코드를 실행하지 않고 루프의 처음으로 돌아갑니다.
if(guess == secretNumber)
{
cout << "정답입니다! 축하합니다." << endl;
cout << "시도 횟수: " << attempts << endl;
break;
}
- 비밀 숫자를 맞췄을 때의 조건입니다.
- "정답입니다! 축하합니다." 라는 메시지, "시도 횟수: "메시지, attempts 값을 출력하고
- break 키워드를 사용하여 무한 루프를 종료합니다.
else if (guess < secretNumber)
{
cout << "더 큰 수를 입력해보세요." << endl;
}
- 추측 숫자가 비밀 숫자보다 작을 때의 조건입니다. "더 큰 수를 입력해보세요."라는 메시지를 출력합니다.
else
{
cout << "더 작은 수를 입력해보세요." << endl;
}
- 그 외의 조건(추측 숫자가 비밀 숫자보다 클 때)에 해당됩니다. "더 작은 수를 입력해보세요."라는 메시지를 출력합니다.
int main()
{
playGame();
return 0;
}
- main함수는 프로그램의 시작점이고, 그 내부에서 playGame 함수가 실행이 됩니다.
- playGame 함수를 빠져나오면 프로그램이 종료됩니다.
이번 예제를 통해 숫자 맞추기 게임을 구현하는 방법을 알아보았습니다.
다음 글에서는 더 다양한 예제를 다루어보도록 하겠습니다.
감사합니다!
728x90
'[C++] > 콘솔 프로그래밍' 카테고리의 다른 글
[C++] 콘솔 프로그래밍 : 동적 메모리 할당 (10) | 2023.06.08 |
---|---|
[C++] 콘솔 프로그래밍 : 구조체 활용하기 (4) | 2023.06.08 |
[C++] 콘솔 프로그래밍 : 최대 공약수 구하기 (18) | 2023.06.07 |
[C++] 콘솔 프로그래밍 : 팩토리얼 계산하기 (8) | 2023.06.07 |
[C++] 콘솔 프로그래밍 : 문자열 뒤집기 (4) | 2023.06.07 |