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枚のカードがあります。最初のハンドを繰り返し、各カードを削除して2番目のハンドに追加し、ハンド1のカードが0、ハンド2のカードが26になるようにします。これを実装する最良の方法は何ですか。 ?

私は独学なので、他の誰かが投稿したものとは異なる方法を持っているなら、私はまだそれを見たいです:)

4

2 に答える 2

2

ハンドがそのカードをCollection<Card>(つまり、List<Card>または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 に答える