-5

デッキのカードを作ろうとしています

デッキには52枚のカードが含まれている必要があります。

ofc with スペード、ダイヤモンド、ハート、ランク付きクラブ、

これは私のコードです。これまでのところ、私はもう取得していません。

カードをシャッフルするデッキを取得する ,52枚のカードを含むデッキを表すクラスを作成する.このクラスの新しいオブジェクトが作成されると、デッキは含まれるカードで初期化されます.

public class Card {
    int[] deck = new int[52];

    String[] suits = {"Spades", "Hearts", "Diamonds", "Clubs"};
    String[] ranks = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};

    Card() {
       for (int i = 0; i < deck.length; i++) {
           deck[i] = i;
       }
    }
}
4

3 に答える 3

2

CardDeck of Cards ではありません。Cardsuitには、 や のような属性 (メンバー変数) があります(rank比較する場合は通常、ランクに整数 (または列挙型) を使用して、表示方法を変更すると便利です)。

カードのデッキは多くのカードです。通常、デッキの作成時に設定された制限があります。この場合、suits[]ranks[]を使用してデッキ内の多くのカードを作成できます(作成時に各カードに特定のスーツとランクを与えます)。Java でこれを行う最も簡単な方法は、ネストされたループを使用することです (次元ごとに 1 回)。

各カードの「色」はスートに由来し、スートによって決定できるため、保存する必要はありません。列挙型が使用されている場合、これは単に属性として割り当てることができます。

上記のロジックに従って、クラスのサンプル セットを次に示します。

class Card {
   final public String suit;
   final public String rank;
   public Card(String suit, String rank) {
      // Assign suit/rank from arguments
   }
   String getColor() {
      // Return the color based on suit (effectively "for free" if
      // using an enumeration)
   }
}

class DeckOfCards {
    String[] suits = {..};
    String[] ranks = {..};

    // Arrays are icky to deal with; favor Lists/Collections.
    List<Card> cards = new ArrayList<Card>();

    public DeckOfCards () {
       // For each suit/rank pair, create a Card and add it
       // to the cards collection.
       // You'll want nested loops, as shown by another answer.
    }

    public List<Card> getCards () {
        // Return cards, perhaps
    }

    // Other methods relating to the Deck of Cards
    public void shuffle () {
    }
}

enumsを調べることをお勧めしますが、上記は、カードとカードのデッキ (またはコレクション) という 2 つの異なる「もの」の違いを示しているはずです。もう 1 つの回答には、2 つの入力配列の外積からカードを生成する方法を示すコードが含まれています。

于 2013-09-29T20:55:38.383 に答える
0

Cardスーツと値のプロパティを持つオブジェクトを作成します。

52 枚すべてのカードのリストを作成するメソッドを作成します。

あなたのデッキにはDeque、しばしば「デッキ」と発音され、カードのデッキに似た を使用することをお勧めします。

次に、シャッフルデッキを作成します

//Create a List of cards
List<Card> deckList = ... //A method to create your 52 cards
Collections.shuffle(deckList);
Deque<Card> deck = new ArrayDeque<Card>(deckList);
于 2013-09-29T20:52:48.697 に答える