C#

내일배움 C# 달리기반 Lv3 문제8

hunhun4949 2024. 8. 21. 17:37

숫자 야구 게임 만들기

using System;
using System.Numerics;

using static System.Console;


namespace Practice1
{
    internal class Practice
    {
        static void Main(string[] args)
        {
            bool guessedCorrectly = false;

            int attempt = 0;
            int strikes;
            int balls;

            Random random = new Random();
            
            int[] targetNumber = { random.Next(0, 10), random.Next(0, 10), random.Next(0, 10) };
            int[] guessNumberArray = new int[3];
            int guessNumber;

            while(guessedCorrectly == false)
            {
                attempt++;
                strikes = 0;
                balls = 0;

                Write("Enter your guess (3 digits): ");
                guessNumber = int.Parse(ReadLine());

                guessNumberArray[2] = guessNumber%10;
                guessNumber /= 10;
                guessNumberArray[1] = guessNumber % 10;
                guessNumber /= 10;
                guessNumberArray[0] = guessNumber;

                int[] temp = new int[3];
                for(int i=0; i<3; i++)
                {
                    temp[i] = targetNumber[i];
                }

                for(int i=0; i<3; i++)
                {
                    if (guessNumberArray[i] == temp[i])
                    {
                        strikes++;
                        temp[i] = -1;
                    }
                }

                for(int i=0;i<3;i++)
                {
                    for(int j=0; j<3; j++)
                    {
                        if (i == j) continue;

                        if (guessNumberArray[i] == temp[j])
                        {
                            temp[j] = -1;
                            balls++;
                            break;
                        }
                    }
                }

                if(strikes == 3)
                {
                    guessedCorrectly = true;
                    WriteLine($"Congratualtions! You've guessed the number in {attempt} attemps.");
                }
                else
                {
                    WriteLine($"{strikes} Strike(s), {balls} Ball(s)");
                }
            }
        }
    }
}