首页 > 解决方案 > 计算手头卡

问题描述

该代码应该创建一个函数,通过添加手头所有卡片的值来计算并返回卡片的分数。手头的八张或更少的牌应从 52 个数组元素中随机选择。但是,Jack、Queen 或 King 的值是 10。

我已经能够遍历卡片并随机选择 8 张卡片。但是,我无法将 Jack、King 和 Queen 的值替换为每次出现的 10。

function showHand(){
    var suits = ['spades', 'hearts', 'diamonds', 'clubs'];
    var cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'Jack', 'Queen', 'King'];
    var deal = [];
    for(suit in suits){
        for(card in cards){
            deal.push(cards[card]);
        }
     }
     var handCard = deal.splice(Math.floor(Math.random() * deal.length), 8);
     var getGolfScore = golfScore(handCard);

     document.getElementById('dvShowHand').innerHTML = list + '<br>' + getGolfScore;
 }

function golfScore(hand){
    var sumCardInHand = 0;
    for(hands in hand){ 
        if(hand[hands] == 'Jack' || hand[hands] == 'King' || hand[hands] == 'Queen'){ 
        hand[hands] = 10; 
         }              
         sumCardInHand += hand[hands];
     }
     return sumCardInHand;
 }

例如,如果手是这个数组:[5, 2, "King", 3, 1, "Queen"],则 golfScore 函数将返回 31。

标签: javascript

解决方案


推荐阅读