我正在做一个纸牌游戏作为一个任务,我卡在最后一关。我遇到的问题是我需要一个条件控制来查看并确定取决于结果的卡的价值。在这场比赛中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!
的[有一种优雅的方式来处理与Ace在大酒杯?]可能的复制(https://开头计算器.com/questions/837951/is-there-an-elegant-way-to-deal-the-ace-in-blackjack) – GottZ