package CardGame;
import java.util.Arrays;
class CardSet{ //카드를 설정
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;
CardSet(){
this(SPADE,2);
}
CardSet(int kind, int number){
this.kind = kind;
this.number = number;
}
public String toString() {
String[] kinds = {"","CLOVER","HEART","DIAMOND","SPADE"};
String numbers = "23456789XJQKA";
return kinds[this.kind] + "." + numbers.charAt(this.number);
}
}
class CardDeck{ // 카드 덱 설정
final int CARD_NUM = 52;
CardSet cardArr[] = new CardSet[CARD_NUM];
CardDeck() {
int i = 0;
for(int k=CardSet.KIND_MAX;k>0;k--)
for(int n=0;n<CardSet.NUM_MAX;n++)
cardArr[i++] = new CardSet(k,n);
}
CardSet pick(int index) {
return cardArr[index];
}
CardSet pick() {
int index = (int)(Math.random()*CARD_NUM);
return pick(index);
}
void shuffle() {
for(int i=0;i<cardArr.length;i++) {
int r = (int)(Math.random() * CARD_NUM);
CardSet temp = cardArr[i];
cardArr[i] = cardArr[r];
cardArr[r] = temp;
}
}
}
public class CardGame {
public static void main(String[] args) {
CardDeck d = new CardDeck();
// CardSet c = d.pick(0);
// System.out.println(c);
d.shuffle();
// for(int i=0;i<5;i++) {
// System.out.println(d.pick(i));
// }
// System.out.println(Arrays.toString(d.cardArr));
CardSet Arr[] = new CardSet[5]; //5개 카드만 빼는 배열
for(int i=0;i<=4;i++)
Arr[i]=d.pick(i);
System.out.println(Arrays.toString(Arr));
// System.out.println(Arr[2].kind);
System.out.println(rankCheck(Arr));
}
static String rankCheck(CardSet[] cards){
int[] count1 = new int[5]; // 무늬를 확인할 배열
int[] count2 = new int[13]; // 숫자를 확인할 배열
int[] count3 = new int[5]; // 같은 숫자가 몇개인가 확인할 배열
String result = "";
for(int i=0;i<cards.length;i++) //같은 무늬 카운트
count1[cards[i].kind]++;
for(int i=0;i<cards.length;i++) //같은 숫자 카운트
count2[cards[i].number]++;
for(int i=0;i<count2.length;i++)
count3[count2[i]]++;
if(count3[4]==1)
result = "포카드";
if(count3[3]==1)
result = "트리플";
if(count3[2]==2)
result = "투페어";
if(count3[2]==1)
result = "원페어";
return result;
}
}
'Coding > Java' 카테고리의 다른 글
| 로또 번호 생성기! (0) | 2020.02.06 |
|---|---|
| java.lang.ArithmeticException: / by zero (0) | 2020.01.02 |
| OOP (0) | 2018.02.23 |
| 별찍기 (0) | 2017.12.19 |
| 포커게임 초안 (0) | 2017.12.19 |