int number[] = new int[52]; // 총 카드숫자가 51장
boolean swit[] = new boolean[52]; //중복 확인 할 숫자도 51장
int r; //51장중 랜덤에 뽑힌 숫자
int w; //인덱스넘버
//init(초기화)
for (int i = 0; i < swit.length; i++) {
swit[i] = false;
}
w = 0;
//0 ~ 51 -> 나중에 1~ 52
//셔플(Shuffle), 정렬(효율), 트리, 탐색(속도)
while(w < 52) {
r = (int)(Math.random()*52); // 0~51범위
if (swit[r] == false) {
swit[r] = true;
number[w] = r;
w++;
}
}
for (int i = 0; i < number.length; i++) {
System.out.println(number[i]);
}
int cardNum; //1~13
int cardPic; //0~3
//숫자
for (int i = 0; i < number.length; i++) {
cardNum = number[i] % 13 + 1; // 1~13
if (cardNum == 1) { //A
System.out.print("card number : "+number[i]+","+"A");
}else if (cardNum == 11) { //J
System.out.print("card number : "+number[i]+","+"J");
}else if (cardNum == 12) { //Q
System.out.print("card number : "+number[i]+","+"Q");
}else if (cardNum == 13) { //K
System.out.print("card number : "+number[i]+","+"K");
}else { //그외 수
System.out.print("card number : "+number[i]+","+"cardNum");
}
// System.out.println();
//그림
cardPic = number[i] / 13; //몫이 0~3
switch (cardPic) {
case 0:
System.out.println(", 스페이드");
break;
case 1:
System.out.println(", 다이아");
break;
case 2:
System.out.println(", 하트");
break;
case 3:
System.out.println(", 클로버");
break;
}
}
주의;
카드 종류는 /4 하여 몫 1,2,3,4로 분류,
카드 번호는 %4하여 나머지 1~12로 분류
'JAVA > 기초 프로그래밍' 카테고리의 다른 글
정수인지 실수인지 판별하는 프로그램/charAt과 '.' 사용 (0) | 2020.05.25 |
---|---|
ASCII코드 사용하여, 모두 숫자인지 확인하는 프로그램 (0) | 2020.05.25 |
Debug 잡기 (0) | 2020.05.25 |
Random 중복 거르기/ swit[r]사용 (0) | 2020.05.25 |
유저로부터 입력 받은 수들의 합계와 평균을 구하는 프로그램을 작성하라 (0) | 2020.05.22 |