基本上,方法规范所要求的是:从卡座顶部移除指定数量的卡并将它们作为数组返回。例如,如果参数是4,那么套牌中的前四张牌将作为大小为4的数组返回。现在,我已经构建了大部分方法,但是我一直收到错误,并且从我的理解与传递的参数numCards
有关。我在检测错误方面遇到了一些困难。有什么建议?另请注意,我在此方法中使用数组,但正如您所见,cards
属于ArrayList类型。 this.cards.toArray(小);将cards
的内容分配给数组小。卡片将从卡片的正面移除。 ArrayList,而不是后面。
public Card[] deal(int numCards) {
Card[] dealt = new Card[numCards];
for (int i = 0; i < numCards; i++) {
dealt[i] = cards.get(i);
}
Card[] small = new Card[cards.size() - numCards];
for (int i = 0; i < cards.size()-numCards; i++)
{
small[i] = this.cards.get(i);
}
this.cards.toArray(small);
return dealt;
}
答案 0 :(得分:0)
你不会从顶部拿走卡片,因为你不知道你已经拿走了多少张卡片,所以你总是这样做。你有没有拿到卡而不是那些?
public Card[] deal(int numCards) {
Card[] dealt = new Card[numCards];
for (int i = 0; i < numCards && !cards.isEmpty() ; i++) { //check for empty deck to prevent Exception
dealt[i] = cards.remove(0);
}
return dealt;
}
这将删除第一张牌并将其放入阵列中。我使用0,因为第一个被删除,所以秒成为第一个。
对于small
数组。因为你说 this.cards.toArray(小),我不明白你想做什么。将小册子的内容分配给小号,但你不做任何小事。