因此,对于我的任务,我需要使用堆栈创建简单的纸牌(无GUI)。我们被允许从Java实现Stack API。我们也应该有3个班级。 Card,CardStack,Stackitaire
所以我的Card课很简单。它使用参数suit,value和isFaceUp创建一个Card对象。一切都很好。
然后我创建代表一堆类的CardStack类。有4种类型:'s' - stock,'w' - waste,'f' - 基础和't' - tableau。 它应该具有以下内容。我还在对象中包含了一个私有字段“type”,并为它添加了一个getter和setter。
public class CardStack extends Stack {
private char type;
public char getType() {
return type;
}
public void setType(char type) {
this.type = type;
}
public CardStack(char type) {
this.setType(type);
Stack<Card> Stack = new Stack<Card> ();
}
public void pushes(Card newCard) {
this.push(newCard);
}
public Card pops() {
this.pop();
return null;
}
public boolean isEmpty() {
return this.empty();
}
public int size() {
return capacityIncrement;
}
然而,我觉得这太简单了。那有意义吗?
现在,我们应该为游戏的实际内容做些什么。
1.“你应该有一个代表画面堆栈的堆栈数组,一个代表基础堆栈的堆栈数组,以及分别代表库存和废弃堆栈的2个独立堆栈”
为什么我们需要一个堆栈数组?为什么一堆不够?这是我教授想要的吗?
static CardStack[] tableau;
static CardStack[] foundation;
static CardStack waste = new CardStack('w');
static CardStack stock = new CardStack('s');
然后我们创建了52张卡的主要堆栈,我这样做了
static Card[] mainStack = new Card[53];
for (int i = 1; i < 13; i++) {
for (int j = 1; j < 4; j++) {
mainStack[i * j] = new Card(i, j, true);
}
}
我认为那部分是正确的。
好的,然后“将所有52张牌从游戏堆栈移动到牌组堆叠中。然后,使用Collections类中的静态方法shuffle()将牌组洗牌”
这是我被卷入的地方。主堆是一张卡片,里面有52张卡片。卡座堆栈是不是数组的堆栈。如何将数组放入堆栈,然后如何在堆栈上使用方法shuffle。不仅仅是数组的shuffle方法吗?
还有一堆,但我想现在已经够了
答案 0 :(得分:2)
为什么我们需要一个堆栈数组?为什么没有足够的堆叠?
想想游戏的玩法。你有一个基础,即基础卡的7,IIRC,堆栈。您还有4张堆栈用于您正在处理卡片的表格。当然,你有单堆卡片用于废物和库存。
这是我教授想要的吗?
他们可能是唯一真正回答这个问题的人,但对我来说这看起来不错。
如何将数组放入堆栈,然后如何使用该方法 在堆栈上洗牌。不仅仅是数组的shuffle方法吗?
你可以将push
个元素放到堆栈中,但我不会对堆栈进行洗牌。它不在堆栈功能的轮室中。如果您将它们放入并随后洗牌,您的预期订单将不再存在。对阵列进行随机播放,然后以相同的方式将卡分发到适当的堆栈中。