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

如何修复Python编写的《猜电影》游戏单次输入解锁多字母的逻辑错误

猜电影游戏代码异常修复方案

问题根因

问题出在unlock函数的索引匹配逻辑错误:

  • 你通过create_question生成的谜题字符串是用空格分隔每个字符的,比如电影Soul生成的初始谜题是* * * *,将其转为列表后长度为7(包含3个分隔用的空格)
  • 但unlock函数循环时用的是原电影名称的长度(Soul长度为4),原电影的字符索引和谜题字符串的列表索引完全错位,导致判断已解锁字符的逻辑完全失效,才会出现未输入的字母被错误解锁的问题。

修复方案

直接修改unlock函数,先把传入的谜题字符串的分隔空格去掉,处理完字符解锁逻辑后再用空格拼接回标准格式,修改后的代码如下:

def unlock(Q,picked_Movie,letter):
    ref = list(picked_Movie)
    # 先去掉Q里的空格,得到和原电影长度一致的字符列表
    Q_list = Q.split(' ')
    temp = []
    n = len(picked_Movie)
    for i in range(n):
        if ref[i] == " " or ref[i] == letter:
            temp.append(ref[i])
        else:
            if Q_list[i] == "*":
                temp.append("*")
            else:
                temp.append(ref[i])
    # 处理完再用空格拼接
    Q_new = " ".join(str(x) for x in temp)
    return Q_new

可选优化

如果需要支持大小写不敏感输入(比如输入小写s也能匹配大写开头的Soul里的S),可以同时修改is_present和unlock函数的判断逻辑,统一转成小写比对即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:30:00