【发布时间】:2015-10-11 01:10:52
【问题描述】:
我试图弄清楚为什么当一副牌中只有 13 张牌时这种方法使用 14 个元素。这是有问题的方法。
public int meldSets(){
int[] rankCount = new int[14];
for (Card c : this){
rankCount[c.getRank()] +=1;
}
【问题讨论】:
-
因为您要定义 14 个元素 -
new int[14];,所以请改用 13 个元素数组 -new int[13]; -
好吧,你分配了 14 个元素的数组。 13 个元素的数组就足够了吗?
-
如果不查看其余代码,我们无法说出原因。也许作者这样做是为了安全。也许有更多的卡。也许有一个小丑等级。谁知道?只有提供更多信息(代码)才能回答这个问题。
-
不可能在没有看到其余代码的情况下说,但我怀疑某处有一个循环指望列表以空值终止。
-
或者可能是因为排名从 1 (ace) 开始,而数组索引从 0 开始,而作者虽然使用索引 7 来表示排名 8,但令人困惑。