Java 将卡添加到废弃堆中
我想在弃牌堆的顶部添加一张牌,弃牌堆的剩余牌将自动进入新牌下,我尝试了很多方法,但都失败了,这里需要一些指导,因为我的项目要求,不想使用stackJava 将卡添加到废弃堆中,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;
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];
}
}
你需要将所有的牌向上移动一张,为新的弃牌腾出空间。要做到这一点,你的循环必须从末端开始,并向后运行
然而,这要求弃牌堆总是足够大,可以容纳所有的牌
您最好使用一个双端队列,这样您就可以在任意一端添加/删除,它将增长到适合您的需要。感谢您的帮助,它现在解决了我的问题,非常感谢^^