二十一点println游戏Java编程

时间:2013-10-02 11:30:04

标签: java blackjack

我的二十一点游戏中的经销商方法有问题。

我有一种从牌组制作随机牌的方法。

卡片已经为它们分配了值等等。 但问题在于我希望经销商绘制新卡的代码,并将该值添加到现有的总手值。代码如下。

//经销商卡价值的基础

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

我已经对这个问题视而不见了,我知道它很容易修复。 谁能帮助我解决我所缺少的问题?

1 个答案:

答案 0 :(得分:1)

你永远不会递增totalDealerHandValue,只是一遍又一遍地覆盖这个值。

替换这两行:

tempDealerHandValue = dealerHandValue;

totalDealerHandValue = (tempDealerHandValue) + (dealerHandValue);

totalDealerHandValue += dealerHandValue;