유니티 부트캠프 8기/Ch02. 프로그래밍 기초(C#)

2주차 과제1 (숫자 맞추기 게임)

Imperor 2025. 1. 26. 19:57

2-1 숫자 맞추기

컴퓨터는 1에서 100까지의 숫자를 임의로 선택하고, 사용자는 이 숫자를 맞추어야 합니다. 사용자가 입력한 숫자가 컴퓨터의 숫자보다 크면 "너무 큽니다!"라고 알려주고, 작으면 "너무 작습니다!"라고 알려줍니다. 사용자가 숫자를 맞추면 게임이 종료됩니다.

 

using System.Threading.Channels;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int targetNumber = new Random().Next(1, 101); ;
            int guess = 0;
            int count = 0;

            Console.WriteLine("1부터 100 사이의 숫자를 맞춰보세요.");

            while (guess != targetNumber)
            {
                Console.WriteLine("추측한 숫자를 입력하세요");
                string input = Console.ReadLine();
                if (int.TryParse(input, out guess))
                {
                    if (guess < 1 && guess > 100)
                    {
                        Console.WriteLine("다시 입력해라");
                    }
                    else
                    {
                        count++;
                        if (guess > targetNumber)
                        {
                            Console.WriteLine("너무 큽니다");
                        }
                        else if (guess < targetNumber)
                        {
                            Console.WriteLine("너무 작습니다");
                        }
                        else
                        {
                            Console.WriteLine("정답");
                            string message = string.Format($"축하합니다! {count}번 만에 숫자를 맞추었습니다");
                            Console.WriteLine(message);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("유효한 숫자가 아닙니다. 다시 입력하십시오.");
                }
            }
        }
    }
}

 

 

사전수업때도 했었고, 2주차 강의 중에도 나왔지만

값이 제대로 입력되지 않은 경우를 처리하지 못했었다

이번에는 이걸 개선했다

 

                string input = Console.ReadLine();
                if (int.TryParse(input, out guess))

TryParse로 값이 제대로 들어왔는지 확인하는 조건을 제대로 작성했고

값이 제대로 들어오지 않은 경우에 

                else
                {
                    Console.WriteLine("유효한 숫자가 아닙니다. 다시 입력하십시오.");
                }

 

예외처리까지 제대로 작성했다