0

我在二十一点游戏中的发牌手方法有问题。

我有一种方法可以从班级牌组中随机生成一张卡片。

卡片已为它们分配了值,依此类推。但是问题在于我希望庄家抽一张新牌并将该值添加到现有的总手牌价值的代码中。代码如下。

//庄家牌值的基础

    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 语句结束。

我对这个问题视而不见,我知道它很容易解决。任何人都可以帮助我解决我所缺少的吗?

4

1 回答 1

1

您永远不会增加 totalDealerHandValue,只是一遍又一遍地覆盖该值。

替换这两行:

tempDealerHandValue = dealerHandValue;

totalDealerHandValue = (tempDealerHandValue) + (dealerHandValue);

totalDealerHandValue += dealerHandValue;
于 2013-10-02T11:36:53.747 回答