IT/프로그램 | 앱

C#에서 난수를 생성해 봅시다. (가위 바위 보 게임 만들기)

DKSOFT 2019. 10. 13.

난수(Random Number)란 무엇인가?

특정한 배열 순서나 규칙을 가지지 않는 , 역 속적인 임의의 수입니다.

 

예를 들면 주사위를 던질때 우리는 1~6 어떤 수가 나올지 알 수 없으며

가위바위보 게임을 할때도 어떤 것이 나올지 알 수 없죠?

 

실제로 프로그램시에 이벤트를 통한 당첨자를 추첨하기 위해서 난수를 발생시켜하는 경우가 많습니다.

 

자 그러면 C# 에서 난수를 발생시키는 방법을 알아봅시다.

 

 

Random 클래스 선언

 


C#에서 사용하는 Radom 클래스를 생성시켜 줍니다.

Random rand = new Random();

 

Next() 


rand.Next()를 이용하여 음수가 아닌 임의의 정수를 반환합니다.

Random rand = new Random();
int num = rand.Next();

Next(n) 


 n보다 작은 음수가 아닌 임의의 정수를 반환합니다.

Random rand = new Random();
int num = rand.Next(10);

위와 같은 Next(10) 사용 시에는 0~9까지의 난수가 발생하여 num으로 치환 되게 됩니다.

즉, 0~n-1까지의 난수가 발생합니다.

 

Next(n , m) 


n보다 같거나 크며 m보다 작은 음수가 아닌 임의의 정수를 반환합니다.

Random rand = new Random();
int num = rand.Next(10 , 100);

위와 같은 Next(10 , 100) 사용 시에는 10~99까지의 난수가 발생하여 num으로 치환 되게 됩니다.

즉, n~m-1 사이의 난수가 발생합니다.

 

 

NextDouble() 


0.0과 1.0 사이의 임의의 부동 소수점 난수를 반환합니다.

Random rand = new Random();
Double num = rand.NextDouble();

//결과 : 0.362076983024402

 

NextBytes(array)


byte 배열에 난수를 채웁니다.

Byte[] array = new Byte[10];
rand.NextBytes(array);

for(int i = 0; i < array.Count(); i++)
{
	Console.WriteLine((i+1).ToString() + " 회차 : " + array[i]);
}

/*
결과
1 회차 : 101
2 회차 : 137
3 회차 : 152
4 회차 : 84
5 회차 : 200
6 회차 : 139
7 회차 : 216
8 회차 : 236
9 회차 : 201
10 회차 : 185
*/

 

난수를 이용한 초간단 가위 바위 보 게임 만들기


아무런 기능 없는 초 간단 가위 바위 보 게임입니다.

여기서 전적이라던지 기능들을 살을 입히고 추가할 수 있겠죠 ^^

    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                Random rand = new Random();
                int computer = rand.Next(1 , 4);
                Console.WriteLine("1. 가위  2. 바위  3. 보자기  0.게임끝내기");
                string msg = Console.ReadLine();
                string ret = "";
                
                switch (Convert.ToInt32(msg)) 
                {
                    case 0: //게임 끝내기를 하였을때
                        ret = "멋진 게임이였습니다. ^^";
                        break;

                    case 1: //플레이어가 가위을 선택

                        if (computer == 1) // 컴퓨터 가위
                            ret = "무승부 입니다.";
                        else if(computer == 2) // 컴퓨터 바위 
                            ret = "컴퓨터가 승리하였습니다.";
                        else if(computer == 3) // 컴퓨터 보자기 
                            ret = "플레이어의 승리 입니다.";
                        break;

                    case 2: //플레이어가 바위을 선택
                        if (computer == 1) // 컴퓨터 가위
                            ret = "플레이어의 승리 입니다."; 
                        else if (computer == 2) // 컴퓨터 바위 
                            ret = "무승부 입니다.";
                        else if (computer == 3) // 컴퓨터 보자기 
                            ret = "컴퓨터가 승리하였습니다."; 

                        break;

                    case 3: //플레이어가 보자기를 선택
                        if (computer == 1) // 컴퓨터 가위
                            ret = "컴퓨터가 승리하였습니다."; 
                        else if (computer == 2) // 컴퓨터 바위 
                            ret = "플레이어의 승리 입니다.";
                        else if (computer == 3) // 컴퓨터 보자기 
                            ret = "무승부 입니다."; 

                        break;

                    default: 


                    break;

                }

                Console.WriteLine(ret);

                if (Convert.ToInt32(msg) == 0)
                    break;
            }

        }
    }

 

가위 바위 보 게임

 

댓글

💲 추천 글