二加二扑克手牌评估器:牌是如何映射到整数的

Two plus Two Poker hand evaluator: How are the cards mapped to the integers?

本文关键字:映射 整数 扑克 评估器 何映射      更新时间:2023-10-16

为了用C++创建尽可能快的蒙特卡罗德州hold’em手部分析器,我目前正在研究手部评估的主题。

正如你们中的许多人可能知道的那样,有很多开源的手工评估器。经过一番思考,我选择了"双加双手评估器"(自从它第一次在双加二论坛上推出以来就这么命名)。

这是目前已知的最快的评估器之一,它使用数组查找来快速找到手的值。

现在,对于函数,您需要传入一个数组,其中包含您感兴趣的卡。例如:

int Cards[] = { 3, 5, 10, 17, 23, 24, 32 };
int hv = HandValue(Cards);

值介于1和52之间。现在,我的问题是:这些整数对应什么牌?3是黑桃王牌吗?三颗心?我搜索了谷歌,2+2论坛,展示手动评估器的各种页面,数组构建的源文件。一切都白费了。所以我希望这里有人能给我指明正确的方向,让我在哪里可以找到这些信息,或者直接给我。

评估人员的来源是这篇优秀的文章:http://www.codingthewheel.com/archives/poker-hand-evaluator-roundup#cactus_kev这对所有评估者进行了单独解释。

我没有验证这一点,但看起来是:

"2c": 1,
"2d": 2,
"2h": 3,
"2s": 4,
"3c": 5,
"3d": 6,
...
"kh": 47,
"ks": 48,
"ac": 49,
"ad": 50,
"ah": 51,
"as": 52

参考:https://github.com/chenosaurus/poker-evaluator/blob/master/lib/PokerEvaluator.js