gpt4 book ai didi

java - (Java) 纸牌游戏逻辑

转载 作者:行者123 更新时间:2023-11-29 02:59:55 25 4
gpt4 key购买 nike

我正在尝试制作一款纸牌 war 游戏。但是,对于这个游戏,将会有一个额外的牌堆,叫做“王牌”。如果玩家 1 或 2 中有一张牌是王牌堆中的引用牌,那么无论排名如何,它都会自动获胜。目前,我坚持逻辑。

在名为 CardPile 的类中,这里是构造函数和方法。

public CardPile(Card[ ] initialCards)
{
pile = new ArrayList<Card>();
for (int i=0; i<initialCards.length; i++)
pile.add(initialCards[i]);
}

public void add(Card aCard)
{
pile.add(aCard);
}

public Card get(int index)
{
return pile.get(index);
}

在我的 TrumpWar 课上

protected CardPile tCard;
protected CardPile cp;
protected CardPile p1;
protected CardPile p2;

public TrumpWar( )
{
cp = new CardPile (new Card[52]);
cp.shuffle();

tCard = new CardPile ();
for (int i=1; i<7; i++) //<---Stuck.
{
tCard.add(tCard.get(i)); //<---error
}

cp.shuffle();

p1 = new CardPile(new Card [26]);
p2 = new CardPile(new Card [26]);
}

当我运行游戏时,我得到一个 NullPointerException,我很确定那是因为我没有将任何东西传递到王牌堆中。当我尝试为王牌 ArrayList 输入一个 int 时,我会收到错误消息 int cannot be converted to Card []

我怎样才能从 52 副牌中取出前六张牌而不将它们移除,只是将它们存储为引用,并将它们添加到王牌堆中?

此外,我是否正确声明了 player1、player2 和 cardpile?

非常感谢您的帮助,谢谢。

最佳答案

你应该替换为:

for (int i=0; i<6; i++)  
{
tCard.add(cp.get(i));
}

您试图从空的 tCard 中获取卡片。

请注意,在您调用 cp = new CardPile(array) 之前,此代码仍然无法工作,其中数组实际上包含不是 null 的卡片。否则,tCard.add(cp.get(0)) 不会添加对第一张卡片的引用,而只是添加 null

关于java - (Java) 纸牌游戏逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35764328/

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