You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python记忆翻牌游戏实现:如何基于双列表设置非成对元素场景的结束判定

适配剩余单元素场景的记忆翻牌游戏结束判断逻辑

核心实现逻辑

全程沿用现有双列表的存储结构,不改动原有游戏状态的记录规则,在原有全量匹配的结束判断基础上,新增“剩余未翻开卡牌无有效可匹配对”的结束触发条件。

判定执行流程

  • 提取剩余未翻开卡牌:逐位遍历letters和correctly_revealed,筛选出correctly_revealed中为占位符' '的位置,取对应位置的letters元素组成剩余卡牌列表
  • 校验可匹配对存在性:统计每个剩余卡牌的出现次数,若所有元素的出现次数均小于2,说明不存在可完成的有效匹配
  • 合并两类触发条件生成最终结束标记

可直接复用的判定代码

# 提取未翻开的剩余卡牌集合
remaining_cards = [card for card, revealed in zip(letters, correctly_revealed) if revealed == ' ']

# 检测剩余卡牌中是否存在可匹配的成对元素
has_available_pair = any(remaining_cards.count(card) >= 2 for card in set(remaining_cards))

# 游戏结束触发条件
game_over = (letters == correctly_revealed) or (len(remaining_cards) > 0 and not has_available_pair)

适配效果验证

  • 单元素剩余场景:当letters = ['B', 'B', 'C', 'D']、correctly_revealed = ['B', 'B', ' ', ' ']时,提取的剩余卡牌为['C', 'D'],两个元素均只出现1次,不存在可匹配对,直接触发游戏结束
  • 常规成对卡牌场景:若剩余卡牌为['C', 'C', 'D'],C元素出现2次,存在可匹配对,游戏可正常推进
  • 全量匹配完成场景:完全兼容原有letters == correctly_revealed的判断逻辑,无额外流程改动

内容的提问来源于stack exchange,提问作者abc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.01 01:27:04