Last active
January 5, 2023 14:06
-
-
Save FeelingXD/82d681a2c3ec2ce7c92f616f2bcdb3cc to your computer and use it in GitHub Desktop.
로또생성기
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
작성자: 고지민 | |
*/ | |
import java.util.Arrays; | |
import java.util.Random; | |
import java.util.Scanner; | |
public class Main { | |
public static void main(String[] args) { | |
Scanner input = new Scanner(System.in); | |
int[] winning_number=createNumber(); | |
System.out.println("[로또 당첨 프로그램]\n"); | |
int lottery_amount=inputInt("로또 개수를 입력해 주세요.(숫자 1 ~ 10):",input,1,10); | |
int[][] my_lottery=myLottery(lottery_amount); | |
for(int i=0;i<lottery_amount;i++){ | |
System.out.printf("%c ", (char)(i+65)); // Ascii | |
printNumber(my_lottery[i]); | |
System.out.println(); | |
} | |
// winning number | |
System.out.println("\n[로또 발표]"); | |
System.out.print(" "); | |
printNumber(winning_number); | |
System.out.println(); | |
// result | |
System.out.println("\n[내 로또 결과]"); | |
for(int i=0;i<lottery_amount;i++){ | |
System.out.printf("%c ", (char)(i+65)); // Ascii | |
printNumber(my_lottery[i]); | |
System.out.printf(" => %d개 일치\n",compareNumber(my_lottery[i],winning_number)); | |
} | |
} | |
public static int inputInt(String message,Scanner input,int min,int max){ | |
try{ | |
System.out.print(message); | |
int value = input.nextInt(); | |
if (value<min||value>max){ | |
throw new Exception(); | |
} | |
return value; | |
}catch (Exception e){ | |
System.out.println("다시 입력해주세요."); | |
return inputInt(message,input,min,max); | |
} | |
} | |
public static void printNumber(int[] numbers){ | |
for(int i=0;i<numbers.length;i++){ | |
if(i<numbers.length-1) | |
System.out.printf("%02d,",numbers[i]); | |
else | |
System.out.printf("%02d",numbers[i]); | |
} | |
} | |
public static int[][] myLottery(int cnt){ | |
int[][] mylottery = new int[cnt][7]; | |
for(int i=0;i<cnt;i++){ | |
mylottery[i]=createNumber(); | |
} | |
return mylottery; | |
} | |
public static int[] createNumber(){ // 7자리 넘버생성 | |
Random rnd = new Random(); | |
int[] created_number=new int[7]; | |
Arrays.fill(created_number,0); | |
for(int i =0;i<7;i++){ | |
rnd.setSeed(System.currentTimeMillis() + rnd.nextInt(10000)); | |
created_number[i]=avoidDuplication(created_number,rnd); | |
} | |
Arrays.sort(created_number); | |
return created_number; | |
} | |
public static int avoidDuplication(int[] arr,Random rnd){ //중복 넘버 방지 | |
int value =rnd.nextInt(45)+1; | |
if (Arrays.stream(arr).anyMatch(i -> i==value)) | |
return avoidDuplication(arr,rnd); | |
else | |
return value; | |
} | |
public static int compareNumber(int[] arr1,int[] arr2){ | |
int cnt=0; | |
for (int i=0;i< arr1.length;i++){ | |
if(arr1[i]==arr2[i]){ | |
cnt++; | |
} | |
} | |
return cnt; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment