저는 블랙 잭 게임을 만들고 카드 처리 방법을 알아 내려고 값과 이름을 표시하려고합니다. 내가 2 개의 속성을 가지고 갔던 이유는 에이스를 1이나 11로 다루는 데있어서 순수하게 로직 기반이었습니다. 그 점을 알지 못했지만 누군가 궁금해하는 경우에 그것을 포함시킬 것이라고 생각했습니다. 여기 내가 지금까지 가지고있는 것이있다. 어떤 도움을 주셔서 감사합니다! 난 내가 코멘트자바 열거 형 값과 이름을 반환하는 방법 (카드)
import java.util.Random;
public class CardDeck {
public enum Cards {
ACE_SPADES (1, 11),
ACE_HEARTS (1, 11),
ACE_CLOVES (1, 11),
ACE_DIAMONDS (1, 11),
TWO_SPADES (2, 2),
TWO_HEARTS (2, 2),
TWO_CLOVES (2, 2),
TWO_DIAMONDS (2, 2),
THREE_SPADES (3, 3),
THREE_HEARTS (3, 3),
THREE_CLOVES (3, 3),
THREE_DIAMONDS (3, 3),
FOUR_SPADES (4, 4),
FOUR_HEARTS (4, 4),
FOUR_CLOVES (4, 4),
FOUR_DIAMONDS (4, 4),
FIVE_SPADES (5, 5),
FIVE_HEARTS (5, 5),
FIVE_CLOVES (5, 5),
FIVE_DIAMONDS (5, 5),
SIX_SPADES (6, 6),
SIX_HEARTS (6, 6),
SIX_CLOVES (6, 6),
SIX_DIAMONDS (6, 6),
SEVEN_SPADES (7, 7),
SEVEN_HEARTS (7, 7),
SEVEN_CLOVES (7, 7),
SEVEN_DIAMONDS (7, 7),
EIGHT_SPADES (8, 8),
EIGHT_HEARTS (8, 8),
EIGHT_CLOVES (8, 8),
EIGHT_DIAMONDS (8, 8),
NINE_SPADES (9, 9),
NINE_HEARTS (9, 9),
NINE_CLOVES (9, 9),
NINE_DIAMONDS (9, 9),
TEN_SPADES (10, 10),
TEN_HEARTS (10, 10),
TEN_CLOVES (10, 10),
TEN_DIAMONDS (10, 10),
JACK_SPADES (10, 10),
JACK_HEARTS (10, 10),
JACK_CLOVES (10, 10),
JACK_DIAMONDS (10, 10),
QUEEN_SPADES (10, 10),
QUEEN_HEARTS (10, 10),
QUEEN_CLOVES (10, 10),
QUEEN_DIAMONDS (10, 10),
KING_SPADES (10, 10),
KING_HEARTS (10, 10),
KING_CLOVES (10, 10),
KING_DIAMONDS (10, 10);
public final int faceValue1;
public final int faceValue2;
private Cards(int faceValue1, int faceValue2) {
this.faceValue1 = faceValue1;
this.faceValue2 = faceValue2;
}
public String toString() { // error: non-static method name() cannot
be referenced from a static context
return Cards.name();
}
public int getFaceValue1() {
return faceValue1;
}
public int getFaceValue2() {
return faceValue2;
}
}
Cards[] deck;
public CardDeck() {
deck = new Cards[52];
int i = 0;
while(i<52) {
for(Cards card : Cards.values()) {
deck[i] = card;
i++;
}
}
shuffle(deck);
}
//This will return the first card after shuffling.
public Cards deal() {
Cards[] cardReturn = new Cards[1];
cardReturn[0] = deck[0];
Cards[] tempArr = new Cards[deck.length - 1];
for(int i=1; i<deck.length; i++) {
tempArr[i-1] = deck[i];
}
deck = new Cards[tempArr.length];
deck = tempArr;
return cardReturn[0];
}
//this shuffles the deck
public void shuffle(Cards[] deckToShuffle) {
int index;
Cards[] temp = new Cards[1];
Random random = new Random();
for (int i = deckToShuffle.length - 1; i > 0; i--) {
index = random.nextInt(i + 1);
temp[0] = deckToShuffle[index];
deckToShuffle[index] = deckToShuffle[i];
deckToShuffle[i] = temp[0];
}
deck = deckToShuffle;
}
}
빠른 승인을 받아 주셔서 감사합니다. 한 가지 : 그 문장이 일반적으로 너무 불명확하거나 광범위한 질문을 나타내는 것처럼 "누구든지 도울 수있다"는 말은 피해야합니다. – GhostCat