본문 바로가기

Coding/Java

포커게임 1차 수정안(미완성본)

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