Cardgame,Array和Enum
问题描述:
我目前被困在我的项目中。这个任务是创建一个BlackJack游戏,使用println/outprints来显示实际的游戏。Cardgame,Array和Enum
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;
}
这些在我的甲板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。
我的问题如下。我希望能够从一系列卡片中随机抽出一张卡片,并与实际的纸牌游戏的值进行比较。
我该如何去制作实际的数组,以便它能够与我的枚举函数一起工作,并且使用数组列表会更好吗?
答
面向对象的解决方案如何?
什么是卡?卡片是拥有(即实例字段)Rank和Suit的对象。你现在有排名和适合作为你的Deck课程的属性,但我不会那样做。甲板是PlayingCards的集合,我会这样定义:
public class PlayingCard {
private Rank r;
private Suit s;
:
:
}
然后,你可以初始化游戏牌对象的数组。
你可以洗牌甲板(包含PlayingCards数组)用自定义的方法,你会写这样的:
myDeck.shuffle();
我会用一个数组列表,因为你可以跟踪所有52卡不重复。你也可以随机排序他们等等等等等等。我之前做过同样的任务。 – progrenhard