Cardgame,Array和Enum

时间:2013-08-29 17:26:41

标签: java arrays arraylist blackjack

我目前陷入了我的项目。作业是创建一个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;
}

这些在我的Deck Class中使用如下:

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。

我的问题如下。我希望能够使用实际纸牌游戏的价值从一系列牌中随机抽取一张牌。

我如何制作实际数组以使其与我的Enums一起运行,并且我最好不要使用arraylist?

1 个答案:

答案 0 :(得分:1)

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

什么是卡?卡片是拥有(即实例字段)Rank和Suit的对象。你现在有排名和西装作为甲板课的属性,但我不会这样做。甲板是一组PlayCards,我将其定义为:

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

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

您可以使用自己编写的自定义方法对Deck(包含一系列PlayingCards)进行随机播放:

myDeck.shuffle();