我试图在网上查看几个来源,他们都处理5张牌和7张牌 . 另外,我并不是真的在寻找代码,我会尝试自己做(尽管如果你愿意的话,我也希望用Python或JavaScript来实现) . 我只是希望有人向我解释找到这样一只手的步骤(使用伪代码) .
基本上,我要问的是:如何从4名球员之间的9张牌中找到最高的扑克牌?
我应该只是在排名中分配所有最高的扑克手数,然后解析每个玩家的手并查看他们的手是否包含该数字?这似乎有点乏味,我不确定这是正确的做法 .
此外,我注意到其他手评估器设置为优化,有些计算每张卡的比特数让我感到困惑 .
编辑:这是我正在进行的游戏:
这是一款拥有6x6网格的游戏,其中有四名玩家拿起牌,无论他们的玩家在哪里登陆,他们都会拿起那张牌 . 卡片来自标准的52卡片组,但卡片面朝上,并且仅使用来自卡片的36张随机选择的卡片 .
最终,在游戏结束时,玩家手中最多可以包含9张牌 .
赢得比赛的方法是在你周围的四名球员中遏制最高牌 .
所以,基本上,如果你有皇家同花顺,其他人都有一对或一对,他们输了 .
在另一场比赛中,最高牌是直线,而其余的牌是三种或两对,那么直线获胜的人 .
所以,最高的扑克手牌相对于其他玩家的手是最高的 . 这是4手球员中排名最高的牌 .
扑克牌只是普通牌,可能是也可能不是排名最高的牌 .
1 回答
9张牌只有126种可能的5张牌组合 . 所以你可以迭代它们来找到最高的 .
itertools.combinations(9_cards, 5)
可以生成所有这些 .为了找到最高的,一个简单的工具可以定义一个给手一个分数的函数 . 然后使用此函数作为键:
max(all_5_cards_hands, key=hand_score)
您可以使用元组来表示分数 . 手工排名领先,卡排名紧随其后 .
一个例子: