我不知道如何将Card类放入Deck。你能解释我如何解决这个问题吗?
以下是说明:
您需要重写构造函数,以便将普通卡片组的所有52张卡分配给卡片阵列。请记住,卡信息需要存储在Deck类中,而不是通过参数传递。此外,您需要为Deck类重新定义toString方法,以便它可以用于以方便的方式显示属性值。确保利用Card类中已存在的toString方法。
(你还需要添加一个shuffle方法,它是从构造函数中调用的.shuff方法是Deck类中的一个私有帮助方法。对于这个版本,你需要通过交换卡来洗牌。随机生成两个[0..51]数字范围内的数字代表卡阵列的索引并交换卡片。进行1000次交换,然后显示卡片。使用Math.random生成随机数。)&lt; -This is a部分说明,但我认为在这种情况下并不重要,因为我想知道的是如何将卡类放入甲板。(但我还是把它放在以防万一< / em>的)
public class Lab11bvst
{
public static void main(String[] args)
{
Deck deck = new Deck();
System.out.println(deck);
}
}
class Deck
{
private Card[] cards;
private int size;
private String[ ] suits = {"Clubs","Diamonds","Hearts","Spades"};
public Deck()
{
size = 52;
cards = new Card[size];
}
private shuffle(){
}
}
卡类:
public class Card
{
private String suit;
private String rank;
private int value;
public Card(String s, String r, int v)
{
suit = s;
rank = r;
value = v;
}
public String getSuit() { return suit; }
public String getRank() { return rank; }
public int getValue() { return value; }
public void setSuit(String s) { suit = s; }
public void setRank(String r) { rank = r; }
public void setValue(int v) { value = v; }
public String toString()
{
return "[" + suit + ", " + rank + ", " + value + "]";
}
public boolean matches(Card otherCard)
{
return otherCard.getSuit().equals(this.suit)
&& otherCard.getRank().equals(this.rank)
&& otherCard.getValue() == this.value;
}
}
答案 0 :(得分:0)
“重写构造函数,以便将普通卡片组的所有52张卡分配给卡片阵列”
现在,构造函数将deck的大小设置为52张卡,然后初始化一个数组以容纳52个元素。您需要通过为通常在卡座中找到的所有52张卡创建卡来填充卡阵列。 Card类的构造函数可以帮助您完成此任务。
例如,您可以首先添加Ace of Diamonds并将其添加到卡片阵列中:
Card aceD = new Card("Diamonds", "Ace", 1);
cards[0] = aceD;
然后将所有52张卡添加到您的卡阵列中。