가위바위보 게임

지금까지 공부한 것을 응용하여 가위바위보 게임 프로그램을 만들어보자.

    Random random = new Random();
    bool playAgain = true;
    String player;
    String computer;
    String answer;

    while (playAgain)
    {
        player = "";
        computer = "";
        answer = "";

        while (player != "ROCK" && player != "PAPER" && player != "SCISSORS" && player != "주먹" && player != "보" && player != "바위")
        {
            Console.Write("ROCK(바위), PAPER(보), SCISSORS(가위) 중 하나를 입력하세요.: ");
            player = Console.ReadLine();
            player = player.ToUpper();
        }

        switch (random.Next(1, 4))
        {
            case 1:
                computer = "ROCK(바위)";
                break;
            case 2:
                computer = "PAPER(보)";
                break;
            case 3:
                computer = "SCISSORS(가위)";
                break;
        }

        Console.WriteLine("당신: " + player);
        Console.WriteLine("컴퓨터: " + computer);

        switch (player)
        {
            case "ROCK":
                if (computer == "ROCK(바위)")
                {
                    Console.WriteLine("- 무승부 -");
                }
                else if (computer == "PAPER(보)")
                {
                    Console.WriteLine("- 패배 -");
                }
                else
                {
                    Console.WriteLine("- 승리 -");
                }
                break;
            case "주먹":
                if (computer == "ROCK(바위)")
                {
                    Console.WriteLine("- 무승부 -");
                }
                else if (computer == "PAPER(보)")
                {
                    Console.WriteLine("- 패배 -");
                }
                else
                {
                    Console.WriteLine("- 승리 -");
                }
                break;
            case "PAPER":
                if (computer == "ROCK(바위)")
                {
                    Console.WriteLine("- 승리 -");
                }
                else if (computer == "PAPER(보)")
                {
                    Console.WriteLine("- 무승부 -");
                }
                else
                {
                    Console.WriteLine("- 패배 -");
                }
                break;
            case "보":
                if (computer == "ROCK(바위)")
                {
                    Console.WriteLine("- 승리 -");
                }
                else if (computer == "PAPER(보)")
                {
                    Console.WriteLine("- 무승부 -");
                }
                else
                {
                    Console.WriteLine("- 패배 -");
                }
                break;
            case "SCISSORS":
                if (computer == "ROCK(바위)")
                {
                    Console.WriteLine("- 패배 -");
                }
                else if (computer == "PAPER(보)")
                {
                    Console.WriteLine("- 승리 -");
                }
                else
                {
                    Console.WriteLine("- 무승부 -");
                }
                break;
            case "가위":
                if (computer == "ROCK(바위)")
                {
                    Console.WriteLine("- 패배 -");
                }
                else if (computer == "PAPER(보)")
                {
                    Console.WriteLine("- 승리 -");
                }
                else
                {
                    Console.WriteLine("- 무승부 -");
                }
                break;
        }

        Console.WriteLine("다시하기 (Y/N)");
        answer = Console.ReadLine();
        answer = answer.ToUpper();

        if (answer == "Y")
        {
            playAgain = true;
        }
        else
        {
            playAgain = false;
        }
    }

    Console.WriteLine("플레이 해주셔서 감사합니다.");

    Console.ReadKey();
}

while문을 중첩하여 다시하기를 선택했을 때와 가위(SCISSORS), 바위(ROCK), 보(PAPER) 외의 것을 입력했을 경우를 처리한다. switch문으로 컴퓨터가 랜덤으로 가위바위보 중 하나를 내보내도록 하고, if문을 통해 승패를 가른다.

 

 

'C# > C#' 카테고리의 다른 글

20. 배열(Arrays)  (0) 2023.09.14
19. 계산기 프로그램(Calculator Program)  (0) 2023.09.13
17. 숫자 맞추기 게임(Number Guessing Game)  (0) 2023.09.05
16. 중첩 반복문(Nested Loops)  (0) 2023.09.04
15. For문(For Loops)  (0) 2023.08.31

+ Recent posts