본문 바로가기

정리 카테고리/실습_과제

실습_로또 생성기

1.요구 사항

-배열없는 로또 생성하기(중복 숫자 없음)

-총 100개 생성



진행한 순서는 아래와 같습니다.

1.랜덤으로 숫자생성
2.저장하는 숫자변수 6개와 각각비교
   +비교시 같으면 체크하는 변수의 증감으로체크
 (저장하는 숫자에 아무 숫자도 없으면 0이므로 저장되지 않았을때도 문제되지 않음)
 
3.이후 첫번째 변수부터 0인지(부여받지 않았는지) 확인 후 부여를 안받을시 변수입력
  이미 부여받았으면 다음 변수에게 입력할수 있게 넘기는 순서로 진행함.
   +숫자 부여가 끝날때마다 중복체크 변수 초기화

4.6번째 변수 부여와 함께 출력을 하고 동시에 출력, 6개 변수 초기화, 중복체크 변수 초기화를 진행.

5.출력이후에 이어서 100번 출력여부 확인 변수를 통해 전체적인 랜덤숫자 생성중단을
   확인하는 변수에 값을 바꿀수 있게 준비함.
 


2.결과 화면 및 샘플


로또생성기.exe





3.소스 코드


  ++Thread.Sleep 사용을 위해 제일 상단에 필요한 소스::     using System.Threading;

 
int num1 = 0;//생성번호 저장 변수
int num2 = 0;//생성번호 저장 변수
int num3 = 0;//생성번호 저장 변수
int num4 = 0;//생성번호 저장 변수
int num5 = 0;//생성번호 저장 변수
int num6 = 0;//생성번호 저장 변수
int oh = 1;//100번 출력 확인 변수
int random = 0;//랜덤생성 번호 저장 변수
int samcheck = 0;//중복 확인 변수
Random r = new Random();//랜덤 생성을 위한 함수
bool check = true;//반복문 반복여부 확인 변수
Console.WriteLine("아무키나 입력하시면 시작합니다.");
Console.ReadKey();
while (check)
{
    Thread.Sleep(35);//랜덤 생성을 위해 딜레이
    random = r.Next(0, 47);//랜덤 생성 범위
    if (random == num1) samcheck++;//중복 비교
    if (random == num2) samcheck++;
    if (random == num3) samcheck++;
    if (random == num4) samcheck++;
    if (random == num5) samcheck++;
    if (random == num6) samcheck++;
     
    if (samcheck == 0)//중복이 아닐시 진행
    {
        if (num1 == 0)//부여된 값 여부 확인
       {
            num1 = random;
        }
        else
        {
            if (num2 == 0)
            {
                num2 = random;
            }
            else
            {
                if (num3 == 0)
                {
                    num3 = random;
                }
                else
                {
                    if (num4 == 0)
                    {
                        num4 = random;
                    }
                    else
                    {
                        if (num5 == 0)
                        {
                            num5 = random;
                        }
                        else
                        {
                            if (num6 == 0)
                            {
                                num6 = random;
								//부여된 6개의 변수 출력
                                Console.WriteLine(num1 + "," + num2 + "," + num3 + "," + num4 + "," + num5 + "," + num6 + " 입니다."+oh);
                                
                                num1 = 0;
                                num2 = 0;
                                num3 = 0;
                                num4 = 0;
                                num5 = 0;
                                num6 = 0;
                                oh++;//출력횟수 체크
                                if (oh == 101)
                                {
                                    check = false;
                                }
                                else;
                                 
                            }
                        }
                    }
                }
            }
        }
    }
    samcheck = 0;
}
 
 
Console.ReadKey();