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

Python猜题游戏优化咨询:实现通用奖励功能无需多文件

解决思路与实现方案

核心逻辑:传递当前题目标识

不需要为每个题目单独创建文件,关键是在调用奖励功能时,把当前题目的编号/唯一标识传递过去,让奖励功能能根据这个标识获取对应题目提示或题目内容。

具体实现步骤

  1. 统一存储题目数据

    • 把所有题目、提示(包括第二提示)整理成一个统一的数据结构,比如字典列表或者JSON文件,示例:
      # 可放在主程序内,或单独配置文件如questions.py
      questions = [
          {
              "id": 1,
              "title": "第一题:Python中用于输出的函数是?",
              "hint1": "它的英文意思是打印",
              "hint2": "函数名以p开头"
          },
          {
              "id": 2,
              "title": "第二题:列表的索引从几开始?",
              "hint1": "不是1",
              "hint2": "是自然数的起始数"
          },
          {
              "id": 3,
              "title": "第三题:Python中单行注释用什么符号?",
              "hint1": "是一个英文符号",
              "hint2": "和感叹号在同一个键位"
          }
      ]
      
  2. 调用奖励功能时传递题目ID

    • 主程序运行到对应题目时,调用奖励功能脚本(比如bonus_feature.py),通过命令行参数传递当前题目ID,示例:
      import subprocess
      
      # 实际运行时替换为当前题目对应的ID
      current_question_id = 3  
      subprocess.run(["python", "bonus_feature.py", str(current_question_id)])
      
  3. 奖励功能脚本接收并识别题目ID

    • 在bonus_feature.py里,通过sys.argv获取命令行参数,拿到题目ID后从统一数据中匹配对应内容:
      import sys
      # 可导入主程序的questions,或复制数据、读取JSON文件
      questions = [
          # 同上的题目数据
      ]
      
      if __name__ == "__main__":
          if len(sys.argv) < 2:
              print("未指定题目ID")
              sys.exit(1)
          current_qid = int(sys.argv[1])
          # 匹配对应题目
          for q in questions:
              if q["id"] == current_qid:
                  current_question = q
                  break
          else:
              print("找不到对应题目")
              sys.exit(1)
          
          # 根据玩家请求执行对应操作
          print("请选择操作:1.查看第二提示 2.查看题目")
          choice = input("> ")
          if choice == "1":
              print(f"第二提示:{current_question['hint2']}")
          elif choice == "2":
              print(f"题目:{current_question['title']}")
          # 此处可添加点数扣除逻辑,后续可将点数变化结果返回主程序
      

进阶优化(可选)

  • 若题目数量较多,可将题目数据存入questions.json文件,在主程序和奖励功能脚本中统一读取,避免数据重复:
    import json
    
    with open("questions.json", "r", encoding="utf-8") as f:
        questions = json.load(f)
    
  • 可通过管道或返回值的方式,让奖励功能脚本将点数变化情况反馈给主程序,更新玩家点数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 12:42:40