我的二十一点游戏中的经销商方法有问题。
我有一种从牌组制作随机牌的方法。
卡片已经为它们分配了值等等。 但问题在于我希望经销商绘制新卡的代码,并将该值添加到现有的总手值。代码如下。
//经销商卡价值的基础
int dealerHandValue = 0;
int tempDealerHandValue = 0;
int totalDealerHandValue= 0;
//经销商第一张卡
randomGenNum = (int)((range * Math.random()) + 1)*2;
dealerHandValue = arrayCardRank[randomGenNum];
CardSuit = arrayCardSuit[randomGenNum];
System.out.println("Dealer First Card Shows : " + (CardSuit));
tempDealerHandValue = dealerHandValue;
//当玩家停止绘画并站立时执行的代码。
while (totalDealerHandValue < 18 && totalDealerHandValue <21)
{
randomGenNum = (int)((range * Math.random()) + 1)*2;
dealerHandValue = arrayCardRank[randomGenNum];
CardSuit = arrayCardSuit[randomGenNum];
System.out.println("Dealer next Card Shows : " + (CardSuit));
tempDealerHandValue = dealerHandValue;
totalDealerHandValue = (tempDealerHandValue) + (dealerHandValue);
System.out.println("Dealer total hand value is " + (totalDealerHandValue));
}
{
System.out.println("Dealer stopped drawing");
if (totalDealerHandValue >= totalUserHandValue)
{
System.out.println("Dealer wins");
return;
}
else
System.out.println("Congratulations! You Win!");
return;
}
此方法只会将新卡值添加到自身中,直到while语句结束。
我已经对这个问题视而不见了,我知道它很容易修复。 谁能帮助我解决我所缺少的问题?答案 0 :(得分:1)
你永远不会递增totalDealerHandValue,只是一遍又一遍地覆盖这个值。
替换这两行:
tempDealerHandValue = dealerHandValue;
totalDealerHandValue = (tempDealerHandValue) + (dealerHandValue);
与
totalDealerHandValue += dealerHandValue;