0

我的程序创建了一副牌并将它们全部分发给 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 张牌。实现这一点的最佳方法是什么?

我是自学的,所以如果你有一种与其他人发布的方法不同的方法,我仍然很乐意看到它:)

4

2 回答 2

2

假设 Hand 将其牌放入 a Collection<Card>(例如aList<Card>或 a ):Set<Card>

public void transferAllCardsToOtherHand(Hand hand) {
    hand.cards.addAll(this.cards);
    this.cards.clear();
}
于 2012-11-16T23:43:56.633 回答
1

假设您的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-16T23:44:08.810 回答