我正在出于学习目的编写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
else:
这是我在此发布的第一个问题,因此,如果我足够清楚,就可以给我反馈,让我感到舒服,等等
我也假设您的hand
也是整数列表
if max([len(set(hand).intersection(set(s))) for s in STRAIGHTS]) >=5