你说
现在,我需要将它们组合到一个名为Deck的数组中,其形式如下:
不,您需要创建一个类Card,其中每个枚举都有一个字段。只有这样做之后,您才能创建卡片组。这样做-
创建一个Card类,至少给它两个字段,每个枚举一个,再加上一个适当的构造函数,再加上getters,再加上一个像样的东西
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张卡塞入每个索引位置。例如,它将尝试将所有52张卡塞入cards [0]点,与cards
[1]项相同,仅添加最后一张Card。您将拥有52个钻石之王的阵列-这不是您想要的。
取而代之的是,摆脱外部循环,而在循环内部增加i:
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 } }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)