如何在JavaScript中累积值

如何在JavaScript中累积值,javascript,Javascript,我是编程新手,我想用JavaScript创建一个Black Jack游戏,但我有一个问题,当游戏开始时,如果玩家想“命中”不止一次,第一手牌被送达时,player_total2的值加倍并且没有累积,下面是我的代码: var-player\u总计; var player_total2; var player_total3; var player_card1; var player_card2; 第一场比赛; 第二种游戏; var welcome=确认(“欢迎使用♠ 胡言乱语♥, 游戏的目标是得到

我是编程新手,我想用JavaScript创建一个Black Jack游戏,但我有一个问题,当游戏开始时,如果玩家想“命中”不止一次,第一手牌被送达时,
player_total2
的值加倍并且没有累积,下面是我的代码:

var-player\u总计;
var player_total2;
var player_total3;
var player_card1;
var player_card2;
第一场比赛;
第二种游戏;
var welcome=确认(“欢迎使用♠ 胡言乱语♥, 游戏的目标是得到21分,你可以选择击球或站立。”);
var消息;
信用卡交易;
var卡组=[
[“Ace-H”,1],
[“2-H”,2],
[“3-H”,3],
[“4-H”,4],
[“5-H”,5],
[“6-H”,6],
[“7-H”,7],
[“8-H”,8],
[“9-H”,9],
[“10-H”,10],
[“Jack-H”,10],
[“皇后-H”,10],
[“King-H”,10],
[“Ace-S”,1],
[“2-S”,2],
[“3-S”,3],
[“4-S”,4],
[“5-S”,5],
[“6-S”,6],
[“7-S”,7],
[“8-S”,8],
[“9-S”,9],
[“10-S”,10],
[“杰克-S”,10],
[“女王-S”,10],
[“国王-S”,10],
[“Ace-D”,1],
[“2-D”,2],
[“3-D”,3],
[“4-D”,4],
[“5-D”,5],
[“6-D”,6],
[“7-D”,7],
[“8-D”,8],
[“9-D”,9],
[“10-D”,10],
[“杰克-D”,10],
[“皇后-D”,10],
[“国王D”,10],
[“Ace-C”,1],
[“2-C”,2],
[“3-C”,3],
[“4-C”,4],
[“5-C”,5],
[“6-C”,6],
[“7-C”,7],
[“8-C”,8],
[“9-C”,9],
[“10-C”,10],
[“杰克C”,10],
[“皇后C”,10],
[“国王C”,第10页]
];
如果(欢迎===true){
洗牌(牌组);
player_card1=card_deck.pop();
player_card2=card_deck.pop();
玩家卡总价值=卡片价值(玩家卡1)+卡片价值(玩家卡2);
如果(玩家总数=21){
message=console.log(“您的卡总数为“+player\u total+”。祝贺您!您赢了!!!”;
}否则{
firstPlay=prompt(“您的牌是“+cardName(player_card1)+”和“+cardName(player_card2)+”。您的牌总数是“+player_total+”。您想打还是站?”);
}
如果(第一次播放==“命中”){
card_dealed=card_deck.pop();
玩家总数2=玩家总数+卡值(已发卡);
同时(玩家全场2<21&&secondPlay!=“站立”){
var secondPlay=prompt(“您现在得到了一个“+cardName(card_dealed)+”。您的卡牌总数是“+player_total2+”。您想打还是站?”);
如果(第二次播放==“点击”){
card_dealed=card_deck.pop();
玩家总数2=玩家总数2+玩家总数+卡值(已发卡);
}
}
如果(第二次播放==“站立”){
message=console.log(“您的卡总价值为“+player_total2+”);
}否则如果(玩家总数2>21){
message=console.log(“你得到了一张”+cardName(牌)+”。你的牌总价值是“+player\u total2+”。你输了!”);
}
}否则{
message=console.log(“您的卡总价值为“+player_total+”);
}
}
功能卡值(卡){
回程卡[1];
}
功能卡名称(卡){
返回卡[0];
}
函数洗牌(a){
变量j,x,i;
对于(i=a.length-1;i>0;i--){
j=数学地板(数学随机()*(i+1));
x=a[i];
a[i]=a[j];
a[j]=x;
}
}
player_total 2已经有player_total,您将再次添加它

        }
    }

    if (secondPlay === "stand") {
        message = console.log("Your total card value is " + player_total2 + ".");
    } else if (player_total2 > 21) {
        message = console.log("You got a " + cardName(card_dealt) + ". Your total card value is " + player_total2 + ". You lost!");
    }
} else {
    message = console.log("Your total card value is " + player_total + ".");
}

在我的第一篇评论中,您定义了全局范围内的大多数变量,最好使用“var player_card1=…”。我想你应该提供更多的代码。什么是
welcome
,它是在哪里定义的?什么是卡片组?它在哪里定义?请发布所有相关代码,因为有些代码可能丢失。抱歉,我已编辑代码并添加了所有代码。我建议1)仅使用一个变量,例如
player\u total
。2) 去掉
secondPlay
变量,并将
firstPlay
重命名为类似
userPlayOrStand
。3) 摆脱
if(firstPlay==“hit”){
if语句,只使用while语句。@ferolo3000如果这个答案解决了您的问题,您应该将它标记为答案,这样每个人都知道答案,然后问题就结束了。@MattOpen Hi,它帮助我找到错误,但我仍在尝试修复它。
            player_total2 = player_total2 + player_total + cardValue(card_dealt);
        }
    }

    if (secondPlay === "stand") {
        message = console.log("Your total card value is " + player_total2 + ".");
    } else if (player_total2 > 21) {
        message = console.log("You got a " + cardName(card_dealt) + ". Your total card value is " + player_total2 + ". You lost!");
    }
} else {
    message = console.log("Your total card value is " + player_total + ".");
}