Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我如何申报钻石和红心套装?_Java_Blackjack - Fatal编程技术网

Java 我如何申报钻石和红心套装?

Java 我如何申报钻石和红心套装?,java,blackjack,Java,Blackjack,好的,在下面的代码中,我想声明“钻石”和“红心”是红色的 代码在这里 if (card.getCardFace() == || card.getCardFace() == ) g.setColor(Color.red); else g.setColor(Color.black); 我想知道如果我在我的卡片类中将它们声明为char,我怎么能做到这一点。我必须改变吗 卡片类 // Instance Data - all things

好的,在下面的代码中,我想声明“钻石”和“红心”是红色的

代码在这里

if (card.getCardFace() == || card.getCardFace() == )
            g.setColor(Color.red);
         else
           g.setColor(Color.black);
我想知道如果我在我的卡片类中将它们声明为char,我怎么能做到这一点。我必须改变吗

卡片

// Instance Data - all things common to all cards
private String cardFace; // king, q, j, 10 - 2, A
private int faceValue; // numberic value of the card
private char cardSuit; // hold suit of the card
private char suits[] = {(char)(003), (char)(004), (char)(005), (char)(006)};

// Constructor
public PlayingCard(int value, int suit)
{
    faceValue = value;
    setFace();
    setSuit(suit);
}

// helper setFace()
public void setFace()
{
    switch(faceValue)
    {
        case 1:
            cardFace = "A";
            faceValue = 14;
            break;
        case 11:
            cardFace = "J";
            break;
        case 12:
            cardFace = "Q";
            break;
        case 0:
            cardFace = "K";
            faceValue = 13;
            break;
        default:
            cardFace = ("" + faceValue);
    }
}

public void setSuit(int suit) // suit num between 0 and 3
{
    cardSuit = suits[suit];
}

// other helpers
public int getFaceValue()
{
    return faceValue;
}
public String getCardFace()
{
    return cardFace;
}

public String toString()
{
    return (cardFace + cardSuit);
}
}

(如果您需要更多代码,请告诉我)

您应该使用
Enums
定义等级和西装的类型,例如:

public static enum Suit {
    CLUB, DIAMOND, SPADE, HEART
}

public static enum Rank {
    TWO("2"), THREE("3"), FOUR("4"), FIVE("5"), SIX("6"), SEVEN("7"), 
    EIGHT("8"), NINE("9"), TEN("10"), JACK("J"), QUEEN("Q"), KING("K"), 
    ACE("A");

    private final String symbol;

    Rank(String symbol) {
        this.symbol = symbol;
    }

    public String getSymbol() {
        return symbol;
    }
}

---

class Card {
    Suit suit;
    Rank rank;
}
然后比较这些值:

if (card.suit == Suit.DIAMONDS || card.suit == Suit.HEARTH) {
    color = Color.RED;
} else {
    color = Color.BLACK;
}
或者将颜色定义为套装的属性,然后仅使用:

color = card.suit.getColor();

您还可以直接在西装枚举中设置颜色。您希望如何从面部确定西装?如果你得到一张有
faceValue
8
的卡片,那怎么知道它是哪一套呢?您可以创建一个enum
西服
,在其中声明四种可能的西服,并为每种西服指定颜色。