我的程序创建了一副牌,并将它们全部分发给4个不同的手。这是我的代码。它创建了4手牌,并将牌分发给每一手牌。
Hand[] hands = new Hand[4];
for(int i=0; i<hands.length; i++){
hands[i] = new Hand();
}
for(int i=0; i<=Deck.size()+8; i++){
for(Hand hand : hands){
hand.addSingleCard(Deck.deal());
}
}现在我有4只手,每只手有13张牌,我想迭代第一只手,移除每一张牌并将其添加到第二只手中,这样手1有0张牌,手2有26张牌。实现这一点的最佳方式是什么?
我正在自学,所以如果你有一个不同于其他人发布的方法,我仍然很乐意看到它:)
发布于 2012-11-17 07:44:09
假设Hand类中的卡片数据结构是一个数组或Collection,您可以使用for-each循环。
static void transferCards (Hand from, Hand to) {
for (Card card : from.cards) {
to.addSingleCard(card);
}
from.cards.clear();
}请随意将from.cards替换为代表您的卡片的任何变量。
发布于 2012-11-17 07:43:57
假设Hand将其卡片放入Collection<Card> (例如,List<Card>或Set<Card> ):
public void transferAllCardsToOtherHand(Hand hand) {
hand.cards.addAll(this.cards);
this.cards.clear();
}https://stackoverflow.com/questions/13426002
复制相似问题