20240828 TIL

Sungchan Ahn(안성찬)·2024년 8월 28일

내일배움캠프

목록 보기
20/104

C#실습 달리기반 8번. 숫자 야구 게임

  1. 숫자 야구 게임 - 컴퓨터가 고른 3자리의 숫자를 맞추는 게임
    컴퓨터가 고른 3자리 숫자는 모두 다른 숫자로 이루어져 있다. 사용자는 3자리 숫자를 입력하고, 컴퓨터는 입력한 숫자와 비교하여 스트라이크와 볼의 개수를 알려준다.
    스트라이크 : 숫자와 자리수가 모두 맞는 경우
    볼 : 숫자는 맞지만 자리수가 다른 경우
using System;
{
    Random rand = new Random();

    int[] targetNumber = new int[3];

    for (int i = 0; i < targetNumber.Length; i++)
    {
        targetNumber[i] = rand.Next(1, 10);
        for (int j = 0; j < i; j++)
        {
            if (targetNumber[i] == targetNumber[j])
            i--;
        }
    }

    int[] userGuess = new int[3];
    int attempts = 0;

    while (true)
    {
        int strike = 0;
        int ball = 0;
        Console.Write("Enter your guess (3 digits): ");
        string input = Console.ReadLine();

        int guessNum;
        bool isNum = int.TryParse(input, out guessNum);

        if (isNum && guessNum >= 123 && guessNum <= 987)
        {
            attempts++;
            userGuess = input.Select(n => n - '0').ToArray();

            for (int i = 0; i < targetNumber.Length; i++)
            {
                if (targetNumber[i] == userGuess[i])
                {
                    strike++;
                }
            }
            for (int i = 0; i < targetNumber.Length; i++)
            {
                for (int j = 0; j < targetNumber.Length; j++)
                {
                    if (i != j && targetNumber[i] == userGuess[j])
                    {
                        ball++;
                    }
                }
            }
            Console.WriteLine($"{strike}S{ball}B");
            if (strike == 3)
            {
                Console.WriteLine($"Success! Number: " + string.Join("", targetNumber)
                				+ $", Attempts: {attempts}");
                break;
            }
        }
        else
        {
            Console.WriteLine("Please enter 3 digits number");
        }
    }
}

profile
게임 개발 기록

0개의 댓글