Java 我应该如何着手制作一种方法,来比较扑克牌游戏中的牌数并返回最好的牌数?
我需要用这样的一行开始这个方法:Java 我应该如何着手制作一种方法,来比较扑克牌游戏中的牌数并返回最好的牌数?,java,Java,我需要用这样的一行开始这个方法: publicstatichandschoosebesthand(arraylisthands)抛出handException{ 我只需要一些提示。 编辑:我有一个例外的原因是因为两手绑在一起的事件。你要求提示,所以我不会提出代码 首先,您需要定义套装、卡和手类 然后,您需要一个类(理想情况下是一个枚举),该类列出所有类型的扑克牌,并使用方法来识别它们并比较相同类型的两只牌 然后,您可以定义一个比较器,该比较器通过比较双手的类型来比较双手,或者,如果双手的类型相
publicstatichandschoosebesthand(arraylisthands)抛出handException{
我只需要一些提示。
编辑:我有一个例外的原因是因为两手绑在一起的事件。你要求提示,所以我不会提出代码
- 首先,您需要定义
、套装
和卡
类手
- 然后,您需要一个类(理想情况下是一个枚举),该类列出所有类型的扑克牌,并使用方法来识别它们并比较相同类型的两只牌
- 然后,您可以定义一个
,该比较器通过比较双手的类型来比较双手,或者,如果双手的类型相同,则调用该类型的方法来比较双手比较器
- 您的
变得相当简单:使用定义的比较器进行排序,然后使用第一个比较器。如果与第二个比较器进行比较时返回0,则抛出异常chooseBestHand
<> P>当然还有更多的细节要考虑,但是一旦你有了你的分类器和比较方法,就只需要对每只手调用直通,看看你得到多少点击量。如果一只手返回真的,那就是你的赢家。如果两个或多个返回真,那么你需要调用简单的FLUSH。(ArrayList hands),它返回的那一个是赢家。如果IsTaightFlush没有指针返回true,那么您将继续为每只指针调用isFourOfAKind,并且您将继续这样做,按降序调用分类器方法,直到您获得至少一个命中,如果您获得多个命中,则调用比较方法。我的提示是编写取而代之的是一个
比较器
。当两只手绑在一起时不要抛出异常。使它们具有可比性并返回0。@cricket\u 007这没有多大意义。该方法不是比较器。它使用比较器返回最佳手。返回null或Optional.empty()可能有意义如果没有最佳手牌,但如果您正在比较列表,则返回0是没有意义的。@sprinter我正在修改前面关于比较器的评论,以回答问题的最后一部分。手牌相等时不应抛出异常。手牌是一张牌的列表。就我个人而言,抛出异常意味着发生了错误艾德,这对我来说没有意义,因为平手在扑克中是一个分裂的壶。