Pink Transparent Star

Unity/개념 공부

[ 내일배움캠프 ] TIL.06 - C# 문법 종합반 2주차 강의_숙제

채유나 2024. 4. 22. 20:50
728x90

 

숫자 맞추기 게임 만들기

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int num = 0;
            int range = 0;

            Random random = new Random();

            range = random.Next(1, 10);

            Console.WriteLine(" 1 부터 10까지의 숫자를 맞추기 !");


            while(true)
            {
                Console.Write("숫자를 입력해주세요 : ");
                num = int.Parse(Console.ReadLine());

                if (range == num)
                {
                    Console.WriteLine("정답입니다!");
                    break;
                }
                else
                {
                    Console.WriteLine("정답이 아닙니다! 다시 입력해주세요!");
                    continue;
                }
            }

            Console.WriteLine("게임을 종료합니다!");
        }

    }
}

Console 결과창

 

 

틱택토 게임 만들기  => 아직 더 작업해야함

using System.ComponentModel.Design;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            char choice = ' ';
            Console.WriteLine("\n");
            Console.WriteLine("틱택토 게임에 오신걸 환영합니다.");
            Console.WriteLine("\n");
            Console.WriteLine("게임을 시작하겠습니까? ( Y / N ) ");
            Console.Write("입력 : ");
            choice = char.Parse(Console.ReadLine());
            
            GameView game = new GameView();

            switch(choice)
            {
                case 'y':
                case 'Y':
                    game.StartGame();
                    break;
                case 'n':
                case 'N':
                    Environment.Exit(0);
                    break;
                    
                default:
                    Console.WriteLine("잘못입력하셨습니다.");
                    break;
            }
        }
    }

    public class GameView
    {
        char[] arr = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
        private int count = 0;
        private int selectPlayer = 1;
        private int choiceNum = 0;

        private int check = 0;
        public void InitGameBorad()
        {
            Console.WriteLine("\n");
            Console.WriteLine("-------------------------");
            Console.WriteLine("|\t|\t|\t|");
            Console.WriteLine("|   {0}   |   {1}   |   {2}   |", arr[0], arr[1], arr[2]);
            Console.WriteLine("|\t|\t|\t|");
            Console.WriteLine("-------------------------");
            Console.WriteLine("|\t|\t|\t|");
            Console.WriteLine("|   {0}   |   {1}   |   {2}   |", arr[3], arr[4], arr[5]);
            Console.WriteLine("|\t|\t|\t|");
            Console.WriteLine("-------------------------");
            Console.WriteLine("|\t|\t|\t|");
            Console.WriteLine("|   {0}   |   {1}   |   {2}   |", arr[6], arr[7], arr[8]);
            Console.WriteLine("|\t|\t|\t|");
            Console.WriteLine("-------------------------");

        }

        public void StartGame()
        {
            Console.Clear();
            while (count <= 9)
            {
                Console.Clear();
                Console.WriteLine("플레이어 1 : X 와 플레이어 2 : O");
                Console.WriteLine("\n");

                if(selectPlayer % 2 == 0)
                {
                    Console.WriteLine("플레이어 2의 차례");
                }
                else
                {
                    Console.WriteLine("플레이어 1의 차례");
                }

                InitGameBorad();

                Console.Write("번호를 입력해주세요 : ");
                choiceNum = int.Parse(Console.ReadLine());

                if (arr[choiceNum] != 'O' && arr[choiceNum] != 'X')
                {
                    if (selectPlayer % 2 == 0)
                    {
                        arr[choiceNum - 1] = 'O';
                    }
                    else
                    {
                        arr[choiceNum - 1] = 'X';
                    }
                    selectPlayer++;
                }
                else
                {
                    Console.Write("이미 표기되어있습니다. 다시 입력해주세요. : ");
                    Console.ReadLine();
                }

                
                count++;               

                check = CheckBoard();

                if(check == 1)
                {                
                    Result(check);
                    break;
                }    
                
                if(count == 9)
                {
                    Console.WriteLine("무승부 입니다!");
                }
            } 
            

        }

        private int CheckBoard()
        {
            //0,1,2 //3,4,5 // 6,7,8
            //가로 

            if (arr[0] == arr[1] && arr[1] == arr[2])
            {
                return 1;
            }
            else if (arr[3] == arr[4] && arr[4] == arr[5])
            {
                return 1;
            }
            else if (arr[6] == arr[7] && arr[7] == arr[8])
            {
                return 1;
            }

            //세로
            else if(arr[0] == arr[3] && arr[3] == arr[6])
            {
                return 1;
            }
            else if (arr[1] == arr[4] && arr[4] == arr[7])
            {
                return 1;
            }
            else if (arr[2] == arr[5] && arr[5] == arr[8])
            {
                return 1;
            }

            //대각선
            else if(arr[0] == arr[4] && arr[4] == arr[8])
            {
                return 1;
            }
            else if (arr[2] == arr[4] && arr[4] == arr[6])
            {
                return 1;
            }

            return 0;
            
        }

        private void Result(int ck)
        {
            Console.Clear();

            if(ck == 1)
            { 
                Console.WriteLine("{0}이 이겼습니다", selectPlayer % 2);
            }
            else
            {
                Console.WriteLine("무승부");
            }
        }

    }
}
728x90