Java 将卡添加到废弃堆中

Java 将卡添加到废弃堆中,java,Java,我想在弃牌堆的顶部添加一张牌,弃牌堆的剩余牌将自动进入新牌下,我尝试了很多方法,但都失败了,这里需要一些指导,因为我的项目要求,不想使用stack public void setTop(Card c)//add a card to top of discard pile { if(this.discardCards[0] != null) { addingCards(); } this.discardCards[0] = c;

我想在弃牌堆的顶部添加一张牌,弃牌堆的剩余牌将自动进入新牌下,我尝试了很多方法,但都失败了,这里需要一些指导,因为我的项目要求,不想使用stack

public void setTop(Card c)//add a card to top of discard pile
{       
    if(this.discardCards[0] != null)
    {
        addingCards();
    }
    this.discardCards[0] = c;
    countDiscard++;     
}

public void addingCards()//pushing each cards to the back of the new card
{
    for(int i = 0; i <= countDiscard - 1; i++)
    {
        Card temp = new Card();
        discardCards[i+1] = discardCards[countDiscard - 1];
    }
}
public void setTop(卡片c)//将一张卡片添加到丢弃堆的顶部
{       
if(此.discards[0]!=null)
{
添加卡片();
}
此.c[0]=c;
countDiscard++;
}
public void addingCards()//将每张卡推到新卡的背面
{

for(int i=0;i您的
添加卡的功能与您认为的不同。它需要如下:

public void addingCards() {
    for (int i = countDiscard; i > 0; i--) {
        discardCards[i] = discardCards[i - 1];
    }
}
你需要将所有的牌向上移动一张,为新的弃牌腾出空间。要做到这一点,你的循环必须从末端开始,并向后运行

然而,这要求弃牌堆总是足够大,可以容纳所有的牌


您最好使用一个双端队列,这样您就可以在任意一端添加/删除,它将增长到适合您的需要。

感谢您的帮助,它现在解决了我的问题,非常感谢^^