난수(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;
}
}
}
'IT' 카테고리의 다른 글
비교적 대우가 좋은 다른 나라 개발자 연봉 (0) | 2019.10.19 |
---|---|
블로그 최적화 리브라 , C-RANK , D.I.A (에라이!! 모르겠다??) (0) | 2019.10.15 |
LG V50 듀얼스크린 주식 MTS 활용 팁 (0) | 2019.10.07 |
Package 'Microsoft.R.Open.Exe' failed to install 오류시 (0) | 2019.10.01 |
스마트폰 배터리 오래 유지 하는 방법 (0) | 2019.09.30 |
댓글