0

我目前被困在我的项目中。任务是创建一个 BlackJack 游戏,使用 println/outprints 来可视化实际游戏。

目前我已经在两个枚举中定义了卡值和类型,如下所示:

public enum Rank {    
    TWO("2"),    
    THREE("3"),    
    FOUR("4"),    
    FIVE("5"),    
    SIX("6"),    
    SEVEN("7"),    
    EIGHT("8"),    
    NINE("9"),    
    TEN("10"),    
    JACK("J"),    
    QUEEN("Q"),    
    KING("K"),    
    ACE("A");       

    public String symbol;        

    private Rank(String symbol)    
    {    
        this.symbol = symbol;    
    }

    public String getSymbol()    
    {    
        return symbol;    
    }    
}


public enum Suit
{
    CLUB,DIAMOND,HEART,SPADES;
}

这些在我的甲板类中使用如下:

public class Deck    
{

   public Suit suit;
   public Rank rank;      

   public Deck(Suit suit, Rank rank)    
   {    
       this.suit = suit;    
       this.rank = rank;    
   } 

   public Suit getSuit()    
   {    
       return this.suit;    
   }

   public Rank getRank()    
   {
       return this.rank;    
   }         
}

我将为我的类、Dealerhand 和 PlayerHand 使用套牌类。

我的问题如下。我希望能够从一组具有实际纸牌游戏值的纸牌中随机抽取一张纸牌。

我将如何制作实际的数组,以便它与我的枚举一起使用,使用数组列表会更好吗?

4

1 回答 1

1

面向对象的解决方案怎么样?

什么是卡片?卡片是同时拥有(即实例字段)Rank 和 Suit 的对象。你目前有等级和西装作为你的 Deck 类的属性,但我不会那样做。甲板是扑克牌的集合,我将其定义为:

public class PlayingCard {
    private Rank r;
    private Suit s;
    :
    :
}

然后,您可以使用 PlayingCard 对象初始化一个数组。

您可以使用您编写的自定义方法来洗牌(包含一组 PlayingCards):

myDeck.shuffle();
于 2013-08-29T17:33:20.153 回答