我正在为学校制作一个二十一点游戏,现在我们正在制作Hand类(添加一张卡片,并检查用户是否破坏/赢了/等)
我正在研究addCard方法
/**
* Adds a card from the deck to the hand
*/
public void addCard(Card c)
{
hand.add(c);
if(getHandValue() > 21)
{
for(int i = 0; i < hand.size()-1; i++)
{
if(hand.get(i).equals("Ace") == true && getHandValue() > 21)
{
c.changeAce();
}
}
}
}
我的问题是当我尝试添加和Ace,Two,Ace到我手上时,它没有像它应该的那样将值从11更改为1,它仍然将它添加为11 2 11然后告诉我手捣毁。
有人能找到问题吗?
由于
答案 0 :(得分:0)
你在i < hand.size()-1
时进行迭代,这意味着它将跳过最后一个元素,因此最后一个ace不会被更改。
尝试i < hand.size()