使用2个不同的ENUMS在Java中构建一副纸牌

使用2个不同的ENUMS在Java中构建一副纸牌,第1张

使用2个不同的ENUMS在Java中构建一副纸牌

你说

现在,我需要将它们组合到一个名为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    }  }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5461895.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存