如何检查玩家数字列表是否包含指定的获胜三元组组合?
检查玩家是否拥有获胜数字组合的方法
已知条件
- 获胜组合集合:
winValues = [[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]] - 玩家数字列表:
[6,3,2,4,2]
核心思路
判断逻辑很直接:只要玩家的数字列表(去重后)包含任意一组获胜组合的全部三个数字,就判定为拥有获胜组合。玩家列表里的重复数字不影响结果,先去重能减少无效判断。
具体实现步骤
1. 对玩家数字列表去重
把玩家的数字列表转换成集合,自动去除重复项。示例中的玩家列表去重后得到 {2, 3, 4, 6}。
player_nums = [6, 3, 2, 4, 2] unique_player_nums = set(player_nums)
2. 遍历获胜组合逐一匹配
循环遍历所有获胜组合,检查每一组的三个数字是否全部存在于去重后的玩家数字集合中。只要找到一组符合条件的,就可以直接判定玩家获胜;如果遍历完所有组合都没找到,就判定未获胜。
winValues = [[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]] has_winning_combo = False for combo in winValues: if all(num in unique_player_nums for num in combo): has_winning_combo = True print(f"玩家拥有获胜组合:{combo}") break if not has_winning_combo: print("玩家没有符合规则的获胜数字组合")
3. 结果验证
对比去重后的玩家数字集合 {2, 3, 4, 6} 和所有获胜组合:
- 最后一组获胜组合
[2, 4, 6]的三个数字均在玩家集合内,因此该玩家拥有符合规则的获胜数字组合。
内容的提问来源于stack exchange,提问作者Henrik Browne
相关产品推荐
相关产品推荐

