728x90
숫자 야구 게임
숫자 야구 게임을 작성하세요. 컴퓨터가 3자리의 숫자를 선택하면 사용자가 그 숫자를 맞추는 게임을 구현하세요. 각 자리의 숫자를 비교하여 스트라이크와 볼의 개수를 출력합니다.
- 숫자 야구 게임 설명
- 숫자 야구 게임은 3자리의 숫자를 맞추는 게임입니다. 컴퓨터가 고른 3자리 숫자는 모두 다른 숫자로 이루어져 있습니다. 사용자는 3자리 숫자를 입력하고, 컴퓨터는 입력한 숫자와 자리수를 비교하여 스트라이크와 볼의 개수를 알려줍니다.
- 스트라이크: 숫자와 자리수가 모두 맞는 경우
- 볼: 숫자는 맞지만 자리수가 다른 경우
예를 들어, 컴퓨터가 427을 선택하고 사용자가 123을 입력했을 때, 2는 맞지만 자리수가 다르므로 1볼, 1은 맞지 않으므로 0스트라이크입니다. 이 과정은 사용자가 정확한 숫자를 맞출 때까지 반복됩니다.
사용 변수 설명
- targetNumber: 컴퓨터가 선택한 3자리의 숫자를 저장하는 배열입니다.
- userGuess: 사용자가 추측한 숫자를 저장하는 배열입니다.
- strikes: 자릿수와 숫자가 모두 맞는 경우의 개수를 저장합니다.
- balls: 자릿수는 맞지 않지만 숫자가 포함된 경우의 개수를 저장합니다.
- guessedCorrectly: 사용자가 숫자를 정확히 맞췄는지를 나타내는 불리언 변수입니다.
int[] targetNumber = new int[3];
int[] userGuess = new int[3];
int strikes = 0;
int balls = 0;
bool guessedCorrectly;
System.Random random = new System.Random();
int attempts = 0;
for (int i = 0; i < userGuess.Length; i++)
{
while (true)
{
int tmp = random.Next(0, 10); // 1부터 9까지 랜덤 숫자
if (targetNumber[0] != tmp && targetNumber[1] != tmp && targetNumber[2] != tmp)
{
targetNumber[i] = tmp;
break;
}
}
}
Console.WriteLine($"targetNumber : {string.Concat(targetNumber)}");
while (true)
{
Console.Write($"Enter your guess (3 digits): ");
string input = Console.ReadLine();
int num;
bool isInt = int.TryParse(input, out num);
if (!isInt)
{
Console.WriteLine("숫자만 입력해주세요");
continue;
}
if (input.Length != 3)
{
Console.WriteLine("숫자 3자리로만 입력해주세요");
continue;
}
int strike = 0;
int ball = 0;
attempts++;
for (int i = 0; i < targetNumber.Length; i++)
{
if (targetNumber[i] == input[i] - '0') // '0'으로 변환
{
strike++;
}
for (int j = 0; j < input.Length; j++)
{
if (i != j && targetNumber[i] == input[j] - '0')
{
ball++;
}
}
}
Console.WriteLine($"{strike} Strike(s), {ball} Ball(s)");
if (strike == 3)
{
Console.Write($"Congratulations! You've guessed the number in {attempts} attempts.");
break;
}
}
Console.WriteLine("정답입니다. 총 시도 횟수는 " + attempts + "번 입니다.");
728x90
'내일배움캠프' 카테고리의 다른 글
내일배움캠프 Unity - 사전캠프 (라이즈업 풍선게임) (0) | 2025.01.08 |
---|---|
내일배움캠프 Unity - 사전캠프 (빗물 받는 르탄이) (0) | 2025.01.07 |
내일배움캠프 Unity - 사전캠프 (팀원과 함께해요 1) (0) | 2025.01.07 |
내일배움캠프 Unity - 사전캠프 (기초 문법 활용해보기 4) (0) | 2025.01.07 |
내일배움캠프 Unity - 사전캠프 (기초 문법 활용해보기 3) (0) | 2025.01.07 |