【发布时间】:2018-04-02 00:51:54
【问题描述】:
我正在做一个纸牌游戏作为一项任务,我被困在最后一个障碍。我遇到的问题是我需要一个条件控制来查看和确定取决于结果的卡片的价值。这场比赛中的 ACE 可能值 1 或 14,具体取决于对结果最有利的因素。游戏是某种黑杰克,但除了 ACE 之外,每张牌都有其面值,可以同时值 1 和 14。我可以检查并将值设置为 1 或 14,如果选择的牌的总和为 7 或较少的。 7+14=21,对比赛最有利。但我无法得到正确的相反代码:如果第一张牌是 ACE,其值设置为 14,第二张牌是 9,那么结果将是 23,玩家被淘汰。那么我需要 ACE 的值是 1... ACE 的默认值为 1。我目前的代码是:
this.dealCard = function () {
this.dealedHand.push(shuffledDeck.shift())
let sum = 0
this.dealedHand.forEach(function (card) {
if (card.value === 1 && sum <= 7) {
card.value = 14
} //Another condition clause to reverse that and let the ACE be 1 again...
sum = sum + card.value
})
this.dealedHandSum = sum
}
for (let i = 0; i < 2; i++) {
this.dealCard()
}
while (this.dealedHandSum < player.stopAtValue) {
this.dealCard()
}
这是一个将移入手牌的牌相加的函数。
其他一切都在正常工作,但我想防止这种情况发生:
Johanna: A♠ K♣ 27
Johanna got 27 and is busted!
【问题讨论】:
标签: javascript if-statement conditional-statements blackjack