使用数组和对象在Java上制作一副牌?

时间:2017-11-19 12:21:28

标签: java arrays object playing-cards

我的教科书给了我这段代码,说它会创建一套新的52张牌。我真的不明白它的作用,因为我在google上看到的方法与此截然不同。我对“索引”变量的作用感到困惑,如何打印此方法?我有一个printdeck方法,但如果此方法不返回任何数字,我将如何调用该方法?

 public static void buildDeck () {
    Card[] deck = new Card [52];
 int index = 0;
 for (int suit = 0; suit <=3; suit++) {
     for (int rank = 1; rank <= 13; rank++) {
         deck[index] = new Card (suit, rank);
         index++;
     }

}

//here is my printDeck method
public static void printCard (Card c) {
    String[] suits = { "Clubs", "Diamonds", "Hearts", "Spades" };
    String [] ranks = { "nart", "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "Queen", "king" };
    System.out.println (ranks[c.rank] + " of " + suits[c.suit]);
}
public static void printDeck (Card[] deck) {
    for (int i = 0; i< deck.length; i++) {
        printCard (deck[i]);
    }
}

我会感激任何帮助,谢谢!

3 个答案:

答案 0 :(得分:0)

索引变量与名称states一样,用作卡组的计数索引。

printDeck(..)方法应该通过调用printCard(..)方法将该整体打印到控制台,并且该方法返回调用System.out.println

答案 1 :(得分:0)

  • 方法printDeck并没有真正打印到控制台。每个卡需要一系列卡片和调用方法printCard(提供当前卡作为参数)。
  • 方法printCard - 如前所述 - 采用一张卡片并将其等级/套件打印到控制台。

    public static void printCard(Card c){   System.out.println(排名[c.rank] +&#34;&#34; +适合[c.suit]); }

使用index变量,例如初始化卡片组。

  • 最初你有52&#34;空白&#34;数组中的卡,或者更好地表示数组中的每个条目都为空。
  • 在每次迭代中,您都要创建一个new Card,并且必须将其分配到卡组中的某个位置。这是通过index完成的,并在每次迭代时递增。

答案 2 :(得分:0)

您应该从buildDeck方法返回card [] deck,然后将其传递给print方法。