gpt4 book ai didi

Java 堆栈简单纸牌

转载 作者:行者123 更新时间:2023-12-02 04:53:12 25 4
gpt4 key购买 nike

因此,对于我的作业,我需要使用堆栈创建简单的纸牌(无 GUI)。我们可以从 Java 实现 Stack API。我们还应该有3节课。卡、CardStack、Stackitaire

所以我的 Card 类相当简单。它使用参数suit、value 和isFaceUp 创建一个Card 对象。这里一切都很好。

然后我创建了代表类堆栈的 CardStack 类。有 4 种类型:'s' - stock、'w' - Waste、'f' - Foundations 和 't' - Tableau。应该有以下内容。我还在对象中包含了一个私有(private)字段“类型”以及它的 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方法不是只能用于数组吗?

还有很多,但我想现在已经足够了

最佳答案

Why do we need an array of stacks? Why isn't one stack enough?

考虑一下游戏的玩法。您有一个基础,即 7 张 IIRC、一堆 基础卡。您还有 4 个堆栈用于您正在使用卡片的 table 。当然,您还有单叠用于废物和库存的卡片。

Is this what my professor wants?

他们可能是唯一真正回答这个问题的人,但这对我来说看起来不错。

How do I put the array into the stack and then how do I use the method shuffle on a stack. Isn't the shuffle method only for arrays?

您可以将元素插入堆栈,但我不会打乱堆栈。它不属于堆栈的功能控制室。如果你把它们放进去然后重新洗牌,你预期的顺序就不再存在。洗牌阵列,然后以与处理游戏相同的方式将牌分发到适当的牌堆中。

关于Java 堆栈简单纸牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29024598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com