使用2个不同的枚举在java中构建一组卡片

使用2个不同的枚举在java中构建一组卡片,java,enums,Java,Enums,我有一个教室(我们可以寻求外界帮助)制作克朗代克纸牌。说到编程,我是个十足的傻瓜(这是我第一次上编程课)。我们刚刚了解了enum,我必须使用它们构建一个组(我已经回顾了关于这个的其他问题,但是我还没有找到一个符合我需要的解决方案)。我们有两个枚举(等级和西装): 及 现在,我需要将它们组合到一个名为Deck的数组中,该数组如下所示: public Deck() { cards = new Card[52]; } 为了把牌放到牌组中,我一直在尝试使用“.values”,但我无法正确使用它

我有一个教室(我们可以寻求外界帮助)制作克朗代克纸牌。说到编程,我是个十足的傻瓜(这是我第一次上编程课)。我们刚刚了解了enum,我必须使用它们构建一个组(我已经回顾了关于这个的其他问题,但是我还没有找到一个符合我需要的解决方案)。我们有两个枚举(等级和西装):

现在,我需要将它们组合到一个名为Deck的数组中,该数组如下所示:

public Deck() {
    cards = new Card[52];
}
为了把牌放到牌组中,我一直在尝试使用“.values”,但我无法正确使用它。这个实验室有一个测试代码,上面说我没有得到任何分数。我做错了什么

    public void fill() {
        for (int i = 0; i<52;i++){
        for (Suit s : Suit.values()) {
        for (Rank r : Rank.values()) {
            cards[i]= new Card(r,s);
   }
   }
   }
   } 
公共空白填充(){
对于(int i=0;i您所述

现在,我需要将它们组合到一个名为Deck的数组中,该数组如下所示:

public Deck() {
    cards = new Card[52];
}
不,您需要创建一个类卡片,其中每个枚举有一个字段。只有这样做之后,您才能创建一组卡片。因此,创建一个卡片类,为它至少提供两个字段,每个枚举一个字段,加上一个适当的构造函数,加上getter,再加上一个像样的
toString()
,然后就可以设置了

而且,这是错误的:

public void fill() {
    for (int i = 0; i<52;i++){ // get rid of this loop
    for (Suit s : Suit.values()) {
    for (Rank r : Rank.values()) {
        cards[i]= new Card(r,s);
}

你的内循环为每一个等级创造每一套衣服。这是每一张牌,你不需要做52次,因为它只会做同样的事情。你要做的是在每个单元格中放一张不同的牌。
public void fill() {
    for (int i = 0; i<52;i++){ // get rid of this loop
    for (Suit s : Suit.values()) {
    for (Rank r : Rank.values()) {
        cards[i]= new Card(r,s);
}
public void fill() {
  int i = 0;
  for (Suit s : Suit.values()) {
    for (Rank r : Rank.values()) {
      cards[i]= new Card(r,s);
      i++;  // increment i here
    }
  }
}