我如何在二十一点牌中将“ Ace”定义为11或1?

时间:2019-04-19 03:15:03

标签: python python-3.x

我正在尝试创建二十一点游戏。我唯一遇到的问题是,如果11会破牌,如何将Ace更改为1。

当玩家的手被抽出时,我试图使用scores.append(Ace = 1)。唯一的问题是,此后的每个ace现在为1。因此,如果发牌人有ace,则ace为1。如果我在最后重新计算分数时尝试将其改回11,则玩家的分数现在变为额外得分10分(将ace值1加10得到11)。除了追加,我尝试添加另一个字典,但是我不知道如何实现另一个字典。我还试图完全重写程序以减少类。

我希望程序能够根据值将ace更改为1或11。我不知道还有什么尝试。如果可以帮助我理解如何添加代码,我可以添加更多代码。

1 个答案:

答案 0 :(得分:2)

简单的数字之和无法捕获一张ace可能具有的两个值。相反,您需要添加一些其他代码来处理21点。

一种相对简单的方法是在计算卡的正常值的同时计算A的数量。如果您已破产,则可以为看到的每个王牌以10为增量调整分数(10分是因为11和1之间的差)。

volatile