我正在编写一个 7 张牌扑克手牌评估脚本,用于学习目的。 目前正在对直接检测进行编程。
虽然我已经找到了一个可行的解决方案,但它并不是很“Pythonic”,因为它检查是否有 A-5 顺子,然后在另一个语句中检查其余的顺子。跛脚。
我已经创建了可能的顺子列表:
# 01 = Deuce, 13 = Ace
STRAIGHTS = [sorted([13, *range(1,14)][n:n+5]) for n in range(0,10)]
这包括讨厌的 A-5 直道。
现在我想做的是将我的手与这些列表相交,看看这个交集的长度是否大于 5。
如果我这样做:
if len([item for item in hand if item in [13,1,2,3,4]) >= 5
它就像一个魅力。但是,如果我将 STRAIGHTS 列表放在硬编码列表上,它就不起作用。这是为什么?
if len([item for item in hand if item in STRAIGHTS) >= 5
其他:
最佳答案
我假设你的手
也是一个整数列表
if max([len(set(hand).intersection(set(s))) for s in STRAIGHTS]) >=5
关于python - 通过列表理解进行 7 张牌扑克手牌检测中的 5 张牌顺子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58140157/