我已经为我正在开发的德州扑克游戏编写了一个朴素的扑克评估算法,我想知道在这些牌中评估小丑的最佳方法是什么。
我的一个想法是用一副牌中的每张牌替换小丑,并反复重新评估手牌以找到最好的手牌。但是,最多可以有 3 个小丑,这似乎不是最有效的方法吗?想法?
PS - 是的,我知道有几个更快的扑克手评估器可用,但这些卡略有不同,我无法找到适合我需要的一张(Jokers 等),因此从头开始写了一张。
请注意,尝试七张牌中的五张牌的每一种组合意味着尝试 21 种组合,这还不错。
对于每一手牌,#: 其中# 是一个数字,表示手牌中的#jokers。
还要注意,一旦你找到了一手牌,你就不必在七张牌中寻找比其他组合中的牌更差的牌——你可以提前停止。
如果出现以下情况,您可以形成同花顺:
0:所有牌的花色相同,最高和最低的牌相差4(这意味着其他三张牌必须在这两者之间)
1:所有非小丑的花色相同,最高和最低的牌相差 4 或 3。(这意味着其他牌填补顺子,有一个缺口 - 小丑填补)
2:所有非小丑的花色相同,最高和最低的牌相差4、3或2。
3:所有非小丑花色相同,最高和最低的牌相差4、3、2或1。
如果满足以下条件,您可以形成四类:
0:你有四张相同等级的牌。
1:你有三张相同等级的牌。
2:你有两张相同等级的牌。
3:你有一个四类——停止评估。
如果满足以下条件,您可以组成一个完整的房子:
0:你有一个三和一对。
1:你有一个三,或者你有两对。
2:你有一个三,或者你有一对。
如果出现以下情况,您可以形成同花:
所有非小丑都是一样的西装。
如果出现以下情况,您可以形成顺子:
请参阅直接冲洗逻辑,但取消冲洗要求。
如果满足以下条件,您可以形成三类:
0:你有三张相同等级的牌。
1:你有两张相同等级的牌。
2:你有一个三样——停止评估。
如果出现以下情况,您可以形成两对:
0:你有两张相同等级的牌,两个不同等级。
1:你有两张相同等级的牌(一对)。
如果出现以下情况,您可以结对:
0:你有两张相同等级的牌。
1:你有一对 - 停止评估。
你有最高牌 - 停止评估
这种比较上下差异的逻辑是行不通的。
考虑到你有 9 - J - J - K - Joker。这将产生 4 的差异,但不是顺子。
FIX:非小丑数字也必须不同。