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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | package Extends; class DeckTest { public static void main(String args[]) { Deck d = new Deck(); // 카드 한 벌(Deck)을 만든다. Card c = d.pick(0); // 섞기 전에 제일 위의 카드를 뽑는다. System.out.println(c); d.shuffle(); // 카드를 섞는다. c = d.pick(0); // 섞은 후에 제일 위의 카드를 뽑는다. System.out.println(c); } } // Deck클래스 class Deck { final int CARD_NUM = 52; // 카드의 개수 Card c[] = new Card[CARD_NUM]; Deck() { // Deck의 카드를 초기화한다. int i = 0; for (int k = Card.KIND_MAX; k > 0; k--) { for (int n = 1; n < Card.NUM_MAX + 1; n++) { c[i++] = new Card(k, n); } } } Card pick(int index) { // 지정된 위치(index)에 있는 카드 하나를 선택한다. return c[index % CARD_NUM]; } Card pick() { // Deck에서 카드 하나를 선택한다. int index = (int) (Math.random() * CARD_NUM); return pick(index); } void shuffle() { // 카드의 순서를 섞는다. for (int n = 0; n < 1000; n++) { int i = (int) (Math.random() * CARD_NUM); Card temp = c[0]; // 첫 번째 카드와 임의로 선택된 카드를 서로 바꾼다. c[0] = c[i]; c[i] = temp; } } } // Card클래스 class Card { static final int KIND_MAX = 4; // 카드 무늬의 수 static final int NUM_MAX = 13; // 무늬별 카드 수 static final int SPADE = 4; static final int DIAMOND = 3; static final int HEART = 2; static final int CLOVER = 1; int kind; int number; Card() { this(SPADE, 1); } Card(int kind, int number) { this.kind = kind; this.number = number; } public String toString() { String kind = ""; String number = ""; switch (this.kind) { case 4: kind = "SPADE"; break; case 3: kind = "DIAMOND"; break; case 2: kind = "HEART"; break; case 1: kind = "CLOVER"; break; default: } switch (this.number) { case 13: number = "K"; break; case 12: number = "Q"; break; case 11: number = "J"; break; default: number = this.number + ""; } return "kind : " + kind + ", number : " + number; } } | cs |
'23.12.24 삭제예정 > 자바' 카테고리의 다른 글
리팩토링 (0) | 2018.06.18 |
---|---|
자바의 역사 (0) | 2018.02.21 |
★★ 상속 extends에 관하여 (0) | 2017.08.08 |
★★★변수의 초기화★★★ (0) | 2017.08.07 |
★★this 생성자 개인적으로 연습해서 만든것 (0) | 2017.08.07 |