如何编写初始化52个卡对象的构造函数

时间:2011-04-12 00:41:04

标签: java

这就是我需要做的事情:

此构造函数使用52个卡片对象初始化Deck,代表标准卡片组中的52张卡片。这些卡必须从黑桃王牌到钻石之王订购。

以下是我的尝试:

private Card[] cards;
String suit, card;
private final int DECK_SIZE = 52;

public Deck() 
{
    cards = new Card[DECK_SIZE];
    String suit[] = {"spades", "hearts", "clovers", "diamonds"};
    String card[] = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Joker", "Queen", "King"};
    for (int c = 0; c<13; c++)
        for (int s = 0; s<4; s++)
        {
            cards.equals(new Card(suit, card));

        }



}

这部分给我一个错误“(新卡(西装,卡片));”说构造函数Card(String [],String [])是未定义的。我不确定是否允许我们添加额外的构造函数。为我们编写的代码确实包括一个Card(int,int)。

好的,这个怎么样?这会有用吗?

public class Deck {

    private Card[] cards;
    int value, suit;
    private final int DECK_SIZE = 52;

    public Deck() 
    {
        //1 = Ace, 11=joker, 12=queen, 13=king
        //1 = spades, 2 = hearts, 3 = clovers, 4 =diamonds
        cards = new Card[DECK_SIZE];
        int suit[] = {1, 2, 3, 4};
        int card[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
        for (int c = 0; c<13; c++)
            for (int s = 0; s<4; s++)
            {
                cards.equals(new Card(suit[s], card[c]));

            }

        }

3 个答案:

答案 0 :(得分:5)

也许是这样的:

cards = new Card[DECK_SIZE];
String suits[] = {"spades", "hearts", "clovers", "diamonds"};
String cards[] = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Joker", "Queen", "King"};

int cardIndex = 0;
for (String suit : suits) {
    for (String card : cards) {
        cards[cardIndex] = new Card(suit, card);
        cardIndex++;
    }
}

答案 1 :(得分:1)

  

我不确定是否允许我们添加额外的构造函数。为我们编写的代码确实包括一个Card(int,int)。

只有您的教练或助教可以回答这个问题。我们并非无所不知。

关于您当前的版本:

您确定要制作一份带有西装和卡片类型列表的Card吗?

即使构造函数存在,我也不认为.equals符合你的想法。我会查阅有关此事的文件。

答案 2 :(得分:0)

我不确定你的equals方法是做什么的,但你传递的是完整的数组。试试这个......

cards.equals(new Card(suit[s], card[c]));