卡甲板52卡,日食,设置颜色,西装,排名

时间:2013-09-29 20:37:34

标签: java

嘿我试图制作一张卡片

牌组应包含52张牌,

ofc with spade,diamond,heart,clubs 有等级,

这是我的代码到目前为止我还没有得到 提前感谢您的帮助。

让牌组洗牌,创建一个代表包含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;
       }
    }
}

3 个答案:

答案 0 :(得分:2)

不是卡片组具有属性(即成员变量),如suitrank(尽管为了比较,通常使用整数 - 或枚举 - 用于排名然后更改方式它们被显示出来。)

卡片组是多张牌;通常在创建卡组时建立限制。在这种情况下,suits[]ranks[]可用于构建卡片中的多张卡片(为每张卡片提供特定的套装并在它被创造)。在Java中执行此操作的最简单方法是使用嵌套循环 - 每个维度一次。

每张卡片的“颜色”来自套装,不需要存放,因为它可以通过套装确定。如果使用枚举,则只能将其指定为属性。

按照上述逻辑,这是一组示例:

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,但上面应该指出两个不同的“事物”之间的区别 - 卡片和卡片的甲板(或收集)。另一个答案包含显示如何从两个输入数组的叉积生成卡片的代码。

答案 1 :(得分:0)

首先,将suit []和rank []转换为int数组。使甲板成为一组卡片,并使甲板和你在不同的calss中使用的构造函数(被称为甲板)将构造函数更改为Card(int suit,int name)只需这样做:

for(int i = 0; i < 4; i++) for(int j = 0; j < 13; j++){
   Cards[13*i + j] = new Card(i, j); 
}

答案 2 :(得分:0)

创建一个具有套装和值属性的Card对象。

创建一个方法来创建所有52张卡的列表。

对于你的套牌,我建议使用Deque,经常发音为“Deck”,并且与一副纸牌相似。

然后创建洗牌甲板

//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);