프로그래머의 삶 Programmer's Life/Java!!

로또 번호 랜덤 생성기~

Oliver's World 2008. 11. 1. 15:09
728x90

/**
 ex)
  lotto game count(1~9)? 3
 
  game 1 ? 10 15 20 30 35 40
  game 2 ? 1  7  24 29 40 45
  game 3 ? 12 19 23 33 39 41
 
  select continue(y/n)?y
 
 조건)
  1) 로또 입력부분 - gameCount();
  2) 로또를 발생하는 메소드 - lotto();
  3) 결과를 출력하는 부분 - result();
  4) 전체 흐름을 제어하는 메소드 - process();
  5) 계속 수행여부를 결정하는 메소드 - select();
  6) 중복되지 않는 결과가 출력되도록 합니다.
  7) 각 게임결과를 오름차순으로 정렬하여 출력합니다.
 */


public class LottoGame{
 // lotto 를 발생하는 메소드
 int lotto(){
  return (int)(1+Math.random()*45);  // 1~45까지의 난수 도출 방법
 }
 
 // 게임수를 입력받는 메소드
 int gameCount()throws Exception{
  System.out.print("Lotto Game count(1~9)?");
  int count=System.in.read()-48;
  System.in.read(); // console 일 경우 이 문장을 한번더 써야한다. 버퍼 비우는 과정
  return count;
 }
 
 // 게임 흐름을 제어하는 메소드(주 메소드)
 void process() throws Exception{
  // 한 게임의 숫자를 받는 배열
  int data[]=new int[6];
  // 게임의 수 얻는다.
  int count = gameCount();
  // 게임 수 만큼 루프를 돌린다.
  for(int i=1;i<=count;i++){
   //각 게임마다 6개의 숫자를 받기 위한 루프
   for(int j=0;j<data.length;j++){
    data[j]=lotto();
   }  
  // 오름차순 정렬 & 중복 체크 메소드 호출부
  deplicate(data);
  sort(data);
  // 한 게임이 끝나면 그 결과를 출력한다.
  result(i,data);
  }
 }

 // 로또 결과를 출력하는 메소드
 void result(int i,int data[]){
  System.out.print("\ngame "+i+" ? ");
  for(int j=0;j<data.length;j++){
   System.out.print(data[j]+"\t");
  }
 }

 // 계속 수행여부를 결정하는 메소드
 void select() throws Exception{
  process();
  System.out.print("\nSelect count(y/n)?");
  int yn=System.in.read();
  System.in.read();
  if(yn=='y') select();
 }

 // 중복숫자를 해결하는 메소드
 void deplicate(int[]data){
  int temp;
  for(int i=0;i<data.length-1;i++){
   for(int j=i+1;j<data.length;j++){
    if(data[i]==data[j]){
     data[j]=lotto();
     deplicate(data);
    }
   }
  }
 }

 // 오름차순으로 정렬하는 메소드
 void sort(int[]data){
  int temp;
  for(int i=0;i<data.length-1;i++){
   for(int j=i+1;j<data.length;j++){
    if(data[i]>data[j]){
     temp=data[i];
     data[i]=data[j];
     data[j]=temp;
    }
   }
  }
 }

 public static void main(String[]args)throws Exception{
  LottoGame lotto=new LottoGame();
  lotto.select();
 }
}

728x90