본문 바로가기
It Study/POWER JAVA(기본서)

POWER JAVA 3장 프로그래밍 13번 문제 (트럼프 카드 뽑기)

by prlkt5200 2022. 9. 25.
반응형

원래는 1~12번 문제랑 같이 붙여서 포스트하려 했지만... 왜인지는 모르겠지만 애착이 가는 문제여서

이렇게 따로 올립니다 ㅎㅎㅎ

 

많이 부족하지만 그래도 열심히 해서 그런가 뿌듯하네요!!

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package test;
 
import java.util.*;
 
public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
 
        // 카드 이미지는 애초에 4개 밖에 안되서, 바로 선언을 해주었다.
        String[] cardImage = { "♠""◆""♥""♣" };
        // 카드 넘버는 13개이기에 길이를 13으로 지정하였다.
        String[] cardNumber = new String[13];
        // 카드 덱의 총 구성은 4개의 문양과, 13개의 숫자들이기에 2차원 배열을 활용하였다.
        String[][] cardDeck = new String[4][13];
 
        // 1차원 배열로 카드 넘버 배열을 만들어 준 것이다.
        for (int i = 0; i < 13; i++) {
            if (i == 0) {
                cardNumber[i] = "Ace";
            } else if (i == 10) {
                cardNumber[i] = "Jack";
            } else if (i == 11) {
                cardNumber[i] = "Queen";
            } else if (i == 12) {
                cardNumber[i] = "King";
            } else {
                cardNumber[i] = String.valueOf(i + 1);
                // 카드 넘버를 String 타입으로 하여 숫자 선언을 못했기에, 숫자 선언하자마자
                // String 타입으로 바꿔줬다.
            }
        }
        // for문 중첩을 활용하여 2차원 배열을 선언하였다.
        for (int j = 0; j < 4; j++) {
            for (int k = 0; k < 13; k++) {
                cardDeck[j][k] = cardImage[j] + cardNumber[k];
            }
        }
 
        System.out.print("출력할 카드 수? ");
        int num = sc.nextInt();
 
        for (int l = 0; l < num; l++) {
            // math.random();을 이용해 2차원 배열이 랜덤으로 출력되게 하였다.
            System.out.println(cardDeck[(int) (Math.random() * 4)][(int) (Math.random() * 13)]);
        }
 
        // ps:참고 메소드
        // 배열을 출력해주는 메소드가 2개가 있는데, 다음과 같다
        // 1.Arrays.toString(1차원) 2.Arrays.deepToString(2차원)
    }
}
 
cs
반응형