ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 숫자 맞추기 게임을 만들어보자 (스파르타캠프)
    스파르타 게임 개발 2024. 4. 22. 15:33

    C#문법 강의 2주차 숙제를 해봅니다.

    ======

     

    먼저 게임을 시작 하면 게임을 선택 하라는 문구가 나오게 해줬습니다.

     

    Console.WriteLine("안녕하세요. 원강이의 숫자게임 맞추기에 오신 걸 환영 합니다.");
    Console.WriteLine();           <- 공백 효과 주기
    Console.WriteLine();
    Console.WriteLine("아래의 번호를 입력 하여 실행 할 게임의 유형을 선택 하세요!");
    Console.WriteLine();
    Console.Write("1. x~y 랜덤 숫자 맞추기!");
    Console.Write("     2. 여러 개의 숫자 동시에 맞추기!");
    Console.WriteLine();
    Console.WriteLine();

     

    여기서 ReadLine으로 플레이어가 입력을 하게 해줬습니다. 

    string choice = Console.ReadLine();

     

     

    일단 1번과 2번 말고 다른 것을 누를 수 있으니 이걸 반복문으로 덮어 다른 걸 입력 해도 계속 물어보게 해줬습니다.

    그리고 1번을 선택 했을 경우에 1번 게임 문구가 나오고, 2번을 선택 했을 시에 2번이 나오게 목표를 잡았습니다.

     

    bool start = true;

    while (start)
    {
        string choice = Console.ReadLine();
        int a = 0;
        bool p = int.TryParse(choice, out a);
        if (p)
        {
            if (a == 1)
            {                

                   start = false
            }
            else if (a == 2)
            {

                   start = false
            }
            else
            {
                Console.WriteLine("1번과 2번 중 선택 해주세요!");
            }
        }
        else
        {
            Console.WriteLine("1번과 2번 중 선택 해주세요!");
        }
    }

     

    이제 1번을 선택 했을 시와 2번을 선택 했을 때의 알맞는 코드를 적어주면 완성 입니다. 

     

    bool start = true;

     

    while (start)
    {
        string choice = Console.ReadLine();
        int a = 0;
        bool p = int.TryParse(choice, out a);
        if (p)
        {
            if (a == 1)
            {
                start = false;
                bool r = false;
                do
                {
                    Console.Clear();
                    Console.WriteLine("랜덤한 숫자를 직접 결정 합니다.");    < - 숫자를 직접 결정 할 수 있게 해봤습니다.
                    Console.WriteLine("1 부터 시작 하는 최소값을 먼저 정해주세요!");
                    int minimum = int.Parse(Console.ReadLine());
                    Console.WriteLine("최대값을 정해주세요!");
                    Console.WriteLine("(최소값보다 작은 수를 입력 하면 오류!)");
                    int maximum = int.Parse(Console.ReadLine());
                    Console.WriteLine("설정이 완료 되었습니다! 게임을 실행 하시겠습니까?");
                    Console.Write("1. 예 ");
                    Console.Write("     2. 재설정");    <- 설정을 다시 할 수 있는 기능도 넣어봤습니다.
                    Console.WriteLine();
                    int select = int.Parse(Console.ReadLine());

                    if (select == 1)
                    {
                        r = false;
                        Console.Clear();
                        Console.WriteLine("게임이 시작 되었습니다.");
                        Console.WriteLine();
                        Random random = new Random();
                        int count = 0;
                        int game = random.Next(minimum, maximum);
                        Console.WriteLine("숫자를 맞춰 보세요!");
                        Console.WriteLine("설정된 숫자 (" + minimum + " ~ " + maximum + ")");
                        int pick = 0;
                        while (pick != game)
                        {
                            pick = int.Parse(Console.ReadLine());
                            if (pick == game)
                            {
                                Console.WriteLine("축하 합니다. 숫자를 맞췄습니다!");
                                Console.WriteLine(count + " 번 만에 맞추셨습니다!");
                            }
                            else if (pick > game)
                            {
                                Console.WriteLine("숫자를 좀 더 작게 입력 해보세요!");
                            }
                            else
                            {
                                Console.WriteLine("숫자를 좀 더 크게 입력 해보세요!");
                            }
                            count++;
                        }
                    }
                    else if (select == 2)
                    {
                        r = true;
                    }
                }
                while (r);

            }
            else if (a == 2)
            {
                Console.WriteLine("해당 게임은 아직 업데이트 전입니다^^.");
                Console.WriteLine("1번 게임을 선택 해주세요!");
                Console.Write("다시 선택 하기 : ");
            }
            else
            {
                Console.WriteLine("1번과 2번 중 선택 해주세요!");
            }
        }
        else
        {
            Console.WriteLine("1번과 2번 중 선택 해주세요!");
        }
    }

     

    해당 글을 좀 더 자세히 작성 하고 싶었지만 시간이 너무 오래 걸리고 지금 할 게 많습니다. 고로 이렇게 마무리 하겠습니다.

     

    나중에 추가 하고 싶은 거 : 게임이 종료 됐을 때 "게임을 재시작 하겠습니까?" 문구 나오고 재시작 할 수 있게 만들기.

    2번 게임 같은 경우는 배열을 사용 해서 만드는 것인데 시간 남으면 꼭 연습 느낌으로 만들기.

     

    숙제 느낀점 : 반복문에 대해서 좀 더 이해 할 수 있게 되었습니다. 다양한 숙제를 원한다...숙제가 재밌군요..

Designed by Tistory.