[Java] Method를 활용해 로또 만들기개발자가 되기까지 (2023.08.16~2024.04.15)/[Basic] Java2023. 9. 9. 23:34
Table of Contents
<문제>
로또 만들기 |
조건 1) 로또번호는 1~45까지 랜덤으로 생성 2) 사용자 로또번호는 1~45까지 랜덤으로 6개 생성 3) 당첨번호는 1~45까지 랜덤으로 7개 생성 (마지막 번호는 보너스 번호) 4) 당첨번호들은 중복 불가 |
<방법>
public class Lotto {
public static void main(String[] args) {
int winLotto[] = new int[7];
int userLotto[] = new int[6];
// 로또번호 생성
arrayLotto(winLotto);
arrayLotto(userLotto);
//로또번호 출력
printLotto(userLotto);
printLotto(winLotto);
//로또등수 확인
int rank = rank(winLotto, userLotto);
if(rank == -1) {
System.out.println("꽝~!!");
}else {
System.out.println("*축* "+rank+"등!!");
}
}
//로또 번호 생성
public static int random() {
return (int)(Math.random()*45)+1;
}
//중복확인
public static boolean isContain(int arr[], int random) {
for(int tmp : arr) {
if(tmp == random) {
return true;
}
}
return false;
}
// 로또 당첨번호 배열
public static void arrayLotto (int arr[]) {
int i = 0;
while(i < arr.length) {
int check = random();
if(!isContain(arr, check)) {
arr[i] = check;
i++;
}
}
}
// 로또번호 출력
public static void printLotto(int arr[]) {
if(arr.length == 7) {
for(int i = 0; i < arr.length-1; i++) {
System.out.print(arr[i]+" ");
}
System.out.println("["+arr[arr.length-1]+"]");
}else {
for(int tmp : arr) {
System.out.print(tmp+" ");
}
System.out.println();
}
}
// 로또 등수
public static int rank(int win[], int user[]) {
if(win.length <= user.length) {
return -1;
}
int cnt =0;
for(int i = 0; i < user.length; i++) {
if(isContain(win, user[i])) {
cnt++;
}
}
switch (cnt) {
case 6: // 1등은 보너스번호 제외 6개 / 2등은 5개 +보너스번호
return (isContain(user, win[win.length-1]) ? 2 : 1);
case 5:
return 3;
case 4: return 4;
case 3: return 5;
default:
return -1;
}
}
}
[Java] Method를 활용해 로또 만들기 끝!
(다음 게시물 예고편)
[Java] Method를 활용해 야구게임 만들기
728x90
@rlozlr :: 얼렁뚱땅 개발자
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!