- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
是否可以从等效值中提取该信息?
据我所知,当量值越高越好。也可以从等值(value)中提取类别和等级。但是有没有办法从你传给它的 7 张牌中找出最好的 5 张牌组合?
Twoplustwo 是最快的扑克手牌评估器(每秒评估 14-15 百万手牌)。您将 7 张牌交给它,它会吐出一个手牌等值(value)。值越高,卡越好。
这是关于 twoplustwo 的精彩总结:http://www.codingthewheel.com/archives/poker-hand-evaluator-roundup#2p2
最佳答案
(免责声明:我正在开发一种扑克软件,除其他外,还可以进行手牌评估)
You give your 7 cards to it and it spits out a hand equivalence value.
有几位评估员在做这件事,如果我没记错的话,他们中的一些人每秒计算超过一亿手牌 (!)。这些评估器基本上归结为在一个巨大的数组中进行 7 次数组查找,并且只需要几个周期(尽管缓存未命中)来评估一手牌。我不认为 14-15 百万/秒是最快的。如果我没记错的话,CactusKev 的求值器要快 10 倍。
现在回答你的问题:
how do you get the best 5 cards combination out of the 7 that you passed to it?
好吧,它不会告诉你但是一旦你有了手的力量,它就会变得非常容易:你不需要重新发明轮子。
您可以使用强度来简化“七分之五”的计算。
您也可以使用其他图书馆,直接给您最好的五张牌(而不仅仅是他们的实力),或者您可以使用实力自己找到五张最好的牌。
我只是举几个例子...
您知道您有一个葫芦(又名“船”),然后您知道您正在寻找三张点数相同的牌,然后是最好的一对(如果有两对,但你肯定能找到至少一对,因为评估员告诉你你有一条船)。
您知道自己有顺子:从最好的一张开始找出五张相邻的牌(注意特殊的轮箱情况)。
您还可以对直道进行更巧妙的处理:您可以利用每条可能的直道的强度,并将评估者给您的强度与这些进行比较。如果它匹配,比如说,一个 10-high 顺子,那么只需寻找任何 T、9、8、7 和 6 牌(无论花色如何)。
你知道你“没有对子”:只需拿走你找到的五张最大的牌
等等
只有几个不同的等级......它们可能是,例如:
NO_PAIR
ONE_PAIR
TWO_PAIRS
SET
STRAIGHT
FLUSH
FULL_HOUSE
FOUR_OF_A_KIND
STRAIGHT_FLUSH
(如果您愿意,您当然可以创建中间的“轮盘顺子”、“轮盘同花顺”和“皇家同花顺”等情况)
一旦您知道您的手是哪种类型的手(多亏了您使用的快速评估器),只需切换到一段代码,该代码可以从该手牌的 7 手中找出最好的 5 手。
我认为这是继续进行的好方法,因为您可以利用超快的计算器,然后它会大大简化您的逻辑。
在启动时,您需要计算一次强度,例如通过计算:
HIGHEST_NO_PAIR_HAND = ultraFastEvaluator( "As Kd Qh Jc 9d 5s 2c" );
HIGHEST_FULL_HOUSE = ultraFastEvaluator( "As Ac Ad Kh Ks 8s 2h" );
我当然不提倡在这里使用字符串。这只是一个例子...
然后,您可以为每一手牌找到实际的五把最好的牌:
所以在我看来,您可以重用直接从七个中找到五个最好的 API,或者完全重写您自己的 API,但是如果您使用快速评估器的结果来简化您的计算,它会更快逻辑。
编辑 请注意,不一定有一种方法可以做到“七选五”。例如,As Ac 在 Kc Kd Qh Qs 2c 公共(public)牌上,“As Ac Kc Kd Qh”和“As Ac Kc Kd Qs”都是“五强”(最后的 Q 花色无关紧要)。
关于algorithm - 在“二加二”扑克手牌评估器上,您如何从传给它的 7 张牌中找出最好的 5 张牌组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9935212/
一副扑克牌是 52 张牌 13阶4花色 致力于高效的手部表示和评估 A K Q J T 9 8 7 6 5 4 3 2 scdh
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我遇到了一个真正令人困惑的错误,在过去的几个小时里我一直试图解决这个错误,但没有成功。我正在研究扑克实现。最初,我通过迭代循环生成卡片。 const suits = ['Heart', 'Spade'
我是一名优秀的程序员,十分优秀!