[C#] 상수, 열거 - 가위바위보 개선

2022. 4. 25. 14:26·언어/C#
728x90
using System;

namespace CSharp
{
    class Program
    {
        enum Choice
        {
            Rock = 1,
            Paper = 2,
            Scissors = 0
        }

        static void Main(string[] args)
        {
            // 0 -> 가위 1-> 바위 2-> 보
            Random rand = new Random();
            int aiChoice = rand.Next(0, 3); // 0~2 사이의 랜덤 값
            int choice = Convert.ToInt32(Console.ReadLine());

            switch(choice)
            {
                case (int)Choice.Scissors:
                    Console.WriteLine("당신의 선택은 가위입니다.");
                    break;
                case (int)Choice.Rock:
                    Console.WriteLine("당신의 선택은 바위입니다.");
                    break ;
                case (int)Choice.Paper:
                    Console.WriteLine("당신의 선택은 보입니다.");
                    break;
            }

            switch (aiChoice)
            {
                case (int)Choice.Scissors:
                    Console.WriteLine("컴퓨터의 선택은 가위입니다.");
                    break;
                case (int)Choice.Rock:
                    Console.WriteLine("컴퓨터의 선택은 바위입니다.");
                    break;
                case (int)Choice.Paper:
                    Console.WriteLine("컴퓨터의 선택은 보입니다.");
                    break;
            }

            // 승패 코멘트
            if (choice == aiChoice)
            {
                Console.WriteLine("무승부입니다.");
            }
            else if(choice == (int)Choice.Scissors && aiChoice == (int)Choice.Paper)
            {
                Console.WriteLine("승리입니다.");
            }
            else if(choice == (int)Choice.Rock && aiChoice == (int)Choice.Scissors)
            {
                Console.WriteLine("승리입니다.");
            }
            else if(choice == (int)Choice.Paper && aiChoice == (int)Choice.Rock)
            {
                Console.WriteLine("승리입니다.");
            }
            else
            {
                Console.WriteLine("패배입니다.");
            }
        }
    }
}

열거형을 사용하려면 class 밑에 enum의 이름을 지정해준다.

enum Choice
        {
            Rock = 1,
            Paper = 2,
            Scissors = 0
        }

열거형은 기본 int 형으로 지정된다. 나처럼 따로 숫자를 지정해주지 않으면 기본으로 위에서 아래로 0부터 숫자가 지정된다.

switch문에는 변하지 않는 확실한 int를 넣어주어야 한다. (캐스트 연산자를 사용!) (int)Choice.Rock의 형식으로 사용해준다. 굳.

728x90

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

[C#] temp를 사용한 자리 바꿔치기  (0) 2022.04.25
[C#] CS0122 보호 수준 때문에 액세스할 수 없습니다  (0) 2022.04.25
[C#] overloading과 overriding  (0) 2022.04.25
[C#] Shallow Copy와 Deep Copy  (0) 2022.04.25
[C#] ReadLine 문자열 입력 받기  (0) 2022.04.25
'언어/C#' 카테고리의 다른 글
  • [C#] CS0122 보호 수준 때문에 액세스할 수 없습니다
  • [C#] overloading과 overriding
  • [C#] Shallow Copy와 Deep Copy
  • [C#] ReadLine 문자열 입력 받기
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (239) N
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (4) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    게임서버
    자바
    coding
    C
    디자인패턴
    C#
    Entityfamework
    java
    Python
    C언어
    네트워크
    HTML
    라즈베리파이
    EFCore
    유니티
    백준
    tcp
    EntityFramework
    코딩
    unity
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[C#] 상수, 열거 - 가위바위보 개선
상단으로

티스토리툴바