当前位置: 首页 > 面试题库 >

有没有一种优雅的方式来处理二十一点中的Ace?

秦昊穹
2023-03-14
问题内容

我的孩子做了一项家庭作业,用Java编写二十一点。我为他提供了一些帮助,但大部分时间他都是自己完成的,实际上效果还不错。他甚至发现了我在计算手值时没有看到的错误。但是,他还没有解决一个难题,我能想到的每个解决方案都非常复杂,而且远远超出了他将能够利用其仍基本的Java技能轻松编写代码的范围。

王牌。实际上,不仅有一个Ace,还有四个Ace,您可能可以一手拿到所有四个Ace。当有一个或多个A且每个A的价值可能为一或十一时,如何优雅地计算一手牌的价值。我觉得应该有一个优美的算法,但是我没有看到它。当然,部分原因可能是我累了,但也许您可以提供帮助。


问题答案:

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



 类似资料:
  • 现在我有了一个,它表示在特定时间板上当前的所有块。 我需要数一下一种类型有多少件,比如白车,黑皇后等,但正常的做法会变得太长,而且看起来很难看。我就是这么做的... 必须有一种更优雅的方法来实现这一点,它需要更少的代码行。我的意思是如果有超过6种类型的碎片和2种类型的颜色。我不能一直像这样给switch语句添加大小写,对吧?但我想不出怎样才能让它更优雅。

  • 问题内容: 似乎有很多方法可以在Python中定义单例。关于堆栈溢出是否有共识? 问题答案: 我没有真正的需要,因为具有功能(而不是类)的模块可以很好地用作单例。它的所有变量都将绑定到模块,该模块无论如何都无法重复实例化。 如果您确实希望使用类,则无法在Python中创建私有类或私有构造函数,因此,您只能通过使用API​​的约定来保护自己免受多重实例化。我仍然将方法放在模块中,并将模块视为单例。

  • 我有如下的C结构: 我使用JNA将其映射到以下Java类: 我还有以下从dll中获取的函数: 以及相对的JNA映射: 最后,我编写了一个java程序,以这种方式调用函数: 该函数应该用“打开”操作的结果填充成员。特别是,这两个字段是指向其他东西的两个指针。发生的情况是,字段总是正确填充,但字段总是null(指向零的指针)。如果我将jna.memory_dump选项设置为true,任何调用总是返回相

  • 基本上,对象(结构)是通过组合不同的组件来构造的。每个具体组件都很容易被与接口匹配的另一个组件交换(我猜是特征)。 我目前正在尝试使用一些特征来实现,这让我陷入了一些错误,并让我开始思考这是否是 Rust 中的常见做法。 这背后的主要思想是实现游戏中常用的组件模式。基本上,游戏将包含许多不同的对象,行为和包含的数据略有不同。没有一个大的类层次结构,对象是由标准组件组成的,更完整的例子是。

  • 问题内容: 我有一个类,每个方法都以相同的方式开始: 是否有一种很好的方法要求(希望每次都不要编写)该类中每个公共方法的部分? 问题答案: 我对优雅并不了解,但这是一个使用Java内置函数的有效实现,该实现 强制 所有方法调用均始于检查状态。 方法: 接口: 类: 正如其他人指出的那样,如果您只需要考虑几种方法,这似乎对您所需的东西就算是过大了。 也就是说,肯定有好处: 实现了某种关注点分离,因为

  • 有没有办法使用 或类似的方法将筛选器数组应用于对象数组? 现在,我有这个: 更优雅的解决方案如下: 当然,上面的示例无法编译,因为<code>reduce,而不是<code>LongStream。我很好奇上面的代码是否可以写在一行中? (P.S .先说清楚,这意在成为Java 8如何工作的问题,而不是风格的问题。我同意一行代码的可读性不如循环代码。)