处理二十一点中的Aces?

时间:2016-10-11 18:55:19

标签: javascript function for-loop methods while-loop

我试图编辑我的"得分"函数使得如果和当一个Ace被处理时,for循环检查它是否是一个Ace并且如果总和大于21,那么如果是这样则减去10。变量" aces"跟踪ace的数量。我得到了这个"提示"使用While循环:

"最后,您可以检查分数总和是否超过21,并且A的数量是否为非零。虽然这是真的,你可以将总和减少10并将你的Aces数减少1,"使用up"你的Aces从11变为1(总分降低10)。然后,您可以继续执行此过程,直到您用完A或者您的分数低于21。"

我不太确定如何解决这个问题。有人可以帮帮我吗?感谢。

function Hand(){
    var handArray =[];
    handArray[0]=deal();
    handArray[1]=deal();
    this.getHand = function(){
        return handArray;  
    };  
    this.score = function(){
        var sum = 0;
        var aces = 0;
        for(var i =0; i < handArray.length; i++){
            sum += handArray[i].getValue();

            while(handArray[i].getValue()===11 && sum >21){
                aces += 1; 
                sum -= 10; 
            };
         }; 
        return sum;
    };
    this.hitMe = function(){
        var newCard = deal();
        handArray.push(newCard);
    };
 };

0 个答案:

没有答案