Notice
Recent Posts
Recent Comments
Link
drexqq
[Java, 자바] 로또숫자 생성기(lotto) 본문
728x90
반응형
Java를 이용하여 1 ~ 5등이 나올 때까지 자동으로 숫자를 생성해주는 프로그램을 만들어보았다.
1 ~ 5등이 한 번이라도 당첨될 때까지 자동으로 숫자 생성
1 ~ 45의 숫자
6개의 당첨 숫자와 1개의 보너스 숫자
유저
6개의 숫자
조건
자리와 상관없음
1등 - 6개의 숫자 보너스 x
2등 - 5개의 숫자 + 보너스 o
3등 - 5개의 숫자
4등 - 4개의 숫자
5등 - 3개의 숫자
2개 이하의 숫자 꽝
코드
package main;
import java.util.Arrays;
public class lotto {
public static void main(String[] args) {
// lotto program
// 1 ~ 5등이 한 번이라도 당청될 때까지 자동으로 입력
/*
1 ~ 45의 숫자
6개의 당첨 숫자와 1개의 보너스 숫자
유저
6개의 숫자
조건
자리와 상관없음
1등 - 6개의 숫자 보너스 x
2등 - 5개의 숫자 + 보너스 o
3등 - 5개의 숫자
4등 - 4개의 숫자
5등 - 3개의 숫자
2개 이하의 숫자 꽝
*/
// 메인 숫자
int main[] = new int[6];
// 보너스 숫자 생성
int bonus = 0;
// 보너스 숫자 유효성
boolean bonusCheck = false;
// 보너스 맞춤 여부
boolean bonusCollect = false;
// 유저 숫자 생성
int user[] = new int[6];
// 맞은 숫자 확인
int collect = 0;
// 당첨여부
boolean win = false;
// 등수
int grade = 0;
// 추첨된 횟수
int count = 0;
// 6개의 로또숫자 생성 (중복 X)
for (int i = 0; i < main.length; i++) {
main[i] = ((int) (Math.random() * 45) + 1);
for (int j = 0; j < i; j++) {
// 메인 숫자중 중복숫자 제거
if (main[i] == main[j]) {
i--;
}
}
}
// 낮은 숫자 순으로 정렬
Arrays.sort(main);
// 당첨 결과 출력
System.out.println("당첨결과는 "+main[0]+", "+main[1]+", "+main[2]+", "+main[3]+", "+main[4]+", "+main[5]+"입니다.");
// 메인숫자와 중복되지않도록 보너스 숫자 재생성
while (!bonusCheck) {
bonus = ((int) (Math.random() * 45) + 1);
if (bonus == main[0] || bonus == main[1] || bonus == main[2] || bonus == main[3] || bonus == main[4] || bonus == main[5]) {
bonusCheck = false;
}
else {
bonusCheck = true;
}
}
System.out.println("보너스 : "+bonus);
// 1 ,2 등이 한 번이라도 당첨될 때까지
while (!win) {
// 6개의 유저 숫자 생성
for (int i = 0; i < user.length; i++) {
user[i] = ((int) (Math.random() * 45) + 1);
for (int j = 0; j < i; j++) {
// 유저 숫자중 중복숫자 제거
if (user[i] == user[j]) {
i--;
}
}
}
// 당첨결과 확인
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
// 당첨 숫자와 추첨 숫자 비교
if (main[i] == user[j]) {
collect++;
}
}
// 보너스 숫자와 추첨 숫자 비교
if (bonus == user[i]) {
collect++;
bonusCollect = true;
}
}
count++;
// 보너스 여부와 관계없이 3개이상 맞추게 되면 종료되도록
if (collect > 2) {
win = true;
} else {
win = false;
}
}
// 낮은 숫자 순으로 정렬
Arrays.sort(user);
// 등수
if (collect == 6 && !bonusCollect) grade = 1;
else if (collect == 6 && bonusCollect) grade = 2;
else if (collect == 5) grade = 3;
else if (collect == 4) grade = 4;
else if (collect == 3) grade = 5;
// 추첨 결과 출력
System.out.println("추첨숫자는 "+user[0]+", "+user[1]+", "+user[2]+", "+user[3]+", "+user[4]+", "+user[5]+"입니다.");
System.out.println(count+"회 만에 "+grade+"등에 당첨 되셨습니다.");
System.out.println("사용하신 금액은"+count*1000+"원 입니다.");
}
}
728x90
반응형
'공부노트 > 개인공부!' 카테고리의 다른 글
[Java, 자바] 성적 통계프로그램.ver2 (0) | 2020.05.26 |
---|---|
[Java, 자바] 성적 통계프로그램 (0) | 2020.05.26 |
[Java ,자바] 랜덤숫자 맞추기 (random number game) (0) | 2020.05.24 |
[Java, 자바] 숫자야구(baseball game) (0) | 2020.05.24 |
[Java, 자바] 사칙연산 계산기(Calculator) (0) | 2020.05.21 |
Comments