有没有一种优雅的方法来处理二十一点中的王牌?

2022-09-03 09:02:13

我的孩子有一个家庭作业,用Java写二十一点。我帮助了他一点,但在大多数情况下,他自己做了这一切,实际上发挥得很好。他甚至发现了一个错误,我没有看到它是如何计算手牌值的。但是,有一个他没有处理过的障碍,我能想到的每个解决方案都非常复杂,远远超出了他能够用他仍然基本的Java技能轻松编码的能力。

王牌。事实上,不仅仅是一个王牌,还有四个,你可以一手拿到所有四个。当有一张或多张王牌时,你如何优雅地计算一手牌的价值,每张王牌的价值可能为1或11。我觉得应该有一个优雅的算法,但我没有看到它。当然,部分原因可能是我累了,但也许你可以帮忙。


答案 1

只需将每个王牌视为11。然后,当该值超过 21 时,从手中每个王牌的总数中减去 10。


答案 2

你只能用1张王牌来表示11分。因此,将除最后一张王牌之外的所有王牌都计算为1,如果积分为10分或更少,则最后一张王牌计为10分。


推荐