| 판정 | 내용 | 예시 (정답: 1 2 3) |
|---|---|---|
| Strike | 숫자와 자리가 모두 일치 | 유저: 1 5 8 → 1 Strike |
| Ball | 숫자는 맞지만 자리가 다름 | 유저: 3 1 2 → 3 Ball |
| Out | 숫자가 하나도 포함되지 않음 | 유저: 4 5 6 → Out |
| 예시 (정답: 1 2 3) | 결과 |
|---|---|
| 유저: 1 5 2 | 1 Strike 1 Ball |
| 유저: 3 1 2 | 3 Ball |
| 유저: 4 5 6 | Out |
3 Strike가 나올 때까지 입력을 반복합니다.
#include <iostream>
using namespace std;
int main()
{
srand(time(NULL));
int com[3]; // 배열 이용
int user[3]; // 배열 이용
for (int i = 0; i < 3; i++) // 중복 없는 숫자 3개 생성
{
com[i] = rand() % 10;
for (int j = 0; j < i; j++)
{
if (com[i] == com[j]) // 중복이면 다시 생성
{
i--;
break;
}
}
}
cout << "숫자 야구 게임을 시작합니다! (0~9 사이 숫자 3개)" << endl;
while (true)
{
int strike = 0;
int ball = 0;
int out = 0;
cout << "\n숫자 3개를 입력하세요 (예: 1 2 3): ";
for (int i = 0; i < 3; i++)
{
cin >> user[i];
}
for (int i = 0; i < 3; i++) // 컴퓨터 숫자
{
for (int j = 0; j < 3; j++) // 유저 숫자
{
if (com[i] == user[j]) // 숫자가 일치하면
{
if (i == j) strike++; // 자리도 일치하면 스트라이크
else ball++; // 자리가 다르면 볼
}
}
}
out = 3 - (strike + ball); // 숫자 자리 전부 틀리면 아웃
if (strike == 3)
{
cout << "3 스트라이크! 정답입니다!" << endl; // 결과 출력
break; // 게임 종료
}
else
{
cout << strike << "스트라이크 " << ball << "볼 " << out << "아웃" << endl; // 결과 출력
}
}
}
배열을 사용 할 줄 몰라서 가독성이 많이 떨어지게 작성 했었는데 배열을 ai를 통해 학습하고 다시 작성 했더니 가독성도 많이 올라가고 효율적이었습니다.