#include
#include
using namespace std;
/*
숫자 야구 게임 : 1~9 까지의 숫자 중 랜덤한 '다른'숫자 3개를 맞추는 게임
컴퓨터가 임의로 3개를 순차적으로 숫자를 선택한다. ex) 1 2 3
반복
플레이어가 숫자 3개를 순차적으로 고른다. ex) 5 3 3 = 아웃 볼 스트라이크
스트라이크 : 1
볼 : 1
아웃 : 1
맞추는데 횟수 제한 or 맞추는데 걸린 제한수도 설정 가능
*/
int main()
{
int nP1, nP2, nP3;
int nC1, nC2, nC3;
int nStrike=0, nBall, nOut;
int nCount;
bool bEnding=true;
srand(time(NULL));
rand();
while (bEnding) // 게임 지속 or 끝내기
{
nC1 = rand() % 9 + 1;
nC2 = rand() % 9 + 1;
while (nC1 == nC2)
{
nC2 = rand() % 9 + 1;
}
nC3 = rand() % 9 + 1;
while (nC1 == nC3 || nC2 == nC3)
{
nC3 = rand() % 9 + 1;
}
//cout << nC1 << nC2 << nC3; // 난수값 설정
nCount = 0;
nStrike = nBall = nOut = 0;
while (nStrike<3) // 게임 시작
{
nStrike = nBall = nOut = 0;
nCount++;
cout << "첫번째 숫자를 입력하세요. : ";
cin >> nP1;
cout << endl << "두번째 숫자를 입력하세요. :";
cin >> nP2;
cout << endl << "세번재 숫자를 입력하세요. :";
cin >> nP3;
if (nP1 == nC1)
{
nStrike++;
}
else if (nP1 == nC2 || nP1 == nC3)
{
nBall++;
}
else
{
nOut++;
}
if (nP2 == nC2)
{
nStrike++;
}
else if (nP2 == nC1 || nP2 == nC3)
{
nBall++;
}
else
{
nOut++;
}
if (nP3 == nC3)
{
nStrike++;
}
else if (nP3 == nC1 || nP3 == nC2)
{
nBall++;
}
else
{
nOut++;
}
cout<< nStrike << ":스트라이크" << endl;
cout<< nBall << ":볼" << endl;
cout<< nOut << ":아웃" << endl;
system("pause");
system("cls");
}
cout << nCount << "회 만에 성공했습니다." << endl;
cout << "새 게임을 시작할까요? (y/n)" << endl;
char chContinue;
cin >> chContinue;
if (chContinue == 'n')
{
bEnding = false;
cout << "게임 끝!";
}
}
}
안녕하세요 게임클래스 입니다.
다음글에 답변을 드렸습니다!!!
하지만 과제에 대해 몇가지 추가사항을 요청해 보도록 하겠습니다.
1. 예외처리 부분 만들것.
- 분명히 범위는 1~9인데 10, 20도 입력이 가능하더라구요??
2. 반복되는 숫자 입력 안되게 할것
- 1,1,1 입력해도 되더라구요??
지금이야 간단한 코드지만 나중에 게임이 복잡해지면 이런 사소한것을 처음부터 잡아나가지 않으면
버그의 개수는 겉잡을 수 없이 늘어나게 됩니다!!
늘 열공하세요!!!!!!!!