在二十一点中计算手牌值

Gig*_*aPr 5 c# blackjack

我正在用 C#实现一个小黑杰克游戏,我在计算玩家的手牌值时遇到了以下问题。根据玩家的手牌,A 的值可能为 1 或 11。如果玩家有三张牌和一张 A,那么如果牌的总和 <= 10,则 A 的值为 11,否则值为 1。

现在让我们假设我不知道玩家有多少 A,并且游戏的实施为经销商提供了使用多副牌的可能性。用户甚至可能在一只手上拥有 5、6、7、8...A。

评估玩家获得最接近 21 点组合(除了其他牌)的所有 A 的最佳方法是什么(可能使用 Linq)?

我知道玩家的牌,我想计算他们的值,使用 A 来达到最接近 21 的值。

Din*_*nah 5

将所有非 A 的值相加并加上 A 的数量:2、Q、A、A = 2 + 10 + (2) = 14

然后从 21 中减去它:21 - 14 = 7

这个数字是否小于 10(如果只有 1 ace == 11)?小于 20(如果两个 ace == 11)?

由于这感觉像是家庭作业,因此故意不是完整的答案,但应该引导您前进。