我目前陷入了我的项目。作业是创建一个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?
答案 0 :(得分:1)
面向对象的解决方案怎么样?
什么是卡?卡片是拥有(即实例字段)Rank和Suit的对象。你现在有排名和西装作为甲板课的属性,但我不会这样做。甲板是一组PlayCards,我将其定义为:
public class PlayingCard {
private Rank r;
private Suit s;
:
:
}
然后,您可以使用PlayingCard对象初始化数组。
您可以使用自己编写的自定义方法对Deck(包含一系列PlayingCards)进行随机播放:
myDeck.shuffle();