이제 일주일 정도 공부한 놈인데, 숫자 야구 게임 만들어 봤다.
돌아가긴 하는데 뭔가 코드가 되게 지저분 하거든?
혹시 더 깔쌈하게 바꿀 순 없을까...
현재 내가 c++에서 배운건 조건문 반복문 배열 기초 정도임
아래는 코드
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
int iPlayer[3] = {};
int iAi[3] = {};
int iStrike = 0, iBall = 0;
srand((unsigned int)time(0));
int iCountArray[9] = {};
for (int i = 0; i < 9; ++i)
{
iCountArray[i] = i + 1;
}
for (int i = 0; i < 100; ++i)
{
int iTemp, idx1, idx2;
idx1 = rand() % 9;
idx2 = rand() % 9;
iTemp = iCountArray[idx1];
iCountArray[idx1] = iCountArray[idx2];
iCountArray[idx2] = iTemp;
}
for (int i = 0; i < 3; ++i)
{
iAi[i] = iCountArray[i];
}
while (true)
{
cout << "3개 숫자를 입력해주세요 (스페이스바로 구분) : ";
cin >> iPlayer[0] >> iPlayer[1] >> iPlayer[2];
for (int i = 0; i < 3; ++i)
{
if (iPlayer[i] == iAi[i])
iStrike += 1;
else if (iPlayer[0] == iAi[i + 1])
iBall += 1;
else if (iPlayer[1] == iAi[i * 2])
iBall += 1;
else if (iPlayer[2] == iAi[i - 1])
iBall += 1;
if (iPlayer[i] < 1 || iPlayer[i] > 9)
{
cout << "0, 혹은 9가 넘어가는 숫자는 입력하면 안됩니다." << endl;
break;
}
}
cout << iStrike << " strike " << iBall << " Ball" << endl;
if (iStrike == 3)
{
cout << "정답입니다!" << endl;
exit(1);
}
iStrike = 0;
iBall = 0;
}
return 0;
}
잘했구만 뭘
괜찮은 거임? 그럼 ㄱㅅㄱㅅ
클래스 ㅇㄷ?
아직 그런거 안 배움...