我正在Python中创建一个奥马哈(应该适用于4张牌和5张牌奥马哈)扑克游戏。我有两个列表。包含已发给玩家的牌的对象列表。此列表包含 4 或 5 个对象。包含社区卡 ( 对象)。此列表包含 5 个卡对象。我已经编写了所有函数来检查玩家是否有皇家齐平,直冲等。这些函数需要一个新列表作为参数。此新列表必须是来自玩家卡列表中的 2 个对象和来自 的 3 个对象的组合。我必须检查所有可能的组合。我知道这可以用2来完成。但我真的不知道正确的方法来做到这一点,以便检查所有可能的组合。除此之外,我如何避免重复检查组合?playerCardListCardCardcommunityCardListCardCardCardCardscommunityCardListfor loopsfor loopCard
2 回答
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
我会使用排列。
给所有卡一个数字,并使用排列库:
from itertools import permutations
# Get all permutations of [1, 2, 3] and print them
perm = permutations([1, 2, 3])
for i in list(perm):
print i
输出:
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)
我希望这是你找到解决方案的良好开端。干杯,保持健康
冉冉说
TA贡献1877条经验 获得超1个赞
您可以使用 。它需要一个列表,它返回另一个不是重复列表的列表。itertools.combinations
import itertools
print(*itertools.combinations([1,2,3], 2))
输出:
(1, 2) (1, 3) (2, 3)
如果你需要一些重复但笨拙的值,你也可以使用itertools.permutations
import itertools
print(*itertools.permutations([1,2,3], 2))
输出:
(1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)
添加回答
举报
0/150
提交
取消