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

儿童选择题答题游戏开发求助:出题重复且题库耗尽后无法结束

解决随机出题重复及题库耗尽未结束的问题

1. 搞定题目重复的两种实用方法

  • 维护已出题记录
    建一个空列表used_questions,每次随机选题目时,只从没在这个列表里的题目里挑。举个Python的例子:

    import random
    original_questions = [...]  # 你的原始题库
    used_questions = []
    # 循环出题,直到出够30道或者没题可选
    while len(used_questions) < 30 and len(used_questions) < len(original_questions):
        # 过滤出还没出过的题
        available = [q for q in original_questions if q not in used_questions]
        selected = random.choice(available)
        used_questions.append(selected)
        # 这里写展示题目、处理玩家答题的逻辑
    

    这种方法适合题库比较大的情况,要是题目是复杂对象,得确保判断“是否已使用”的逻辑没问题。

  • 动态缩减可用题库
    把原始题库复制一份到临时列表,每次选完题就把它从临时列表里删掉,剩下的自然都是没出过的。代码大概是这样:

    import random
    original_questions = [...]  # 你的原始题库
    available_questions = original_questions.copy()  # 复杂对象记得用深拷贝,比如copy.deepcopy()
    completed_count = 0
    
    while completed_count < 30 and available_questions:
        # 随机选一个索引
        idx = random.randint(0, len(available_questions)-1)
        selected_q = available_questions.pop(idx)
        completed_count += 1
        # 展示题目、处理答题...
    

    这种方法效率更高,不用每次过滤,大部分场景都适用。

2. 让游戏在正确时机结束

游戏结束的触发条件要同时考虑两个限制:已经出了30道题 或者 剩下的题已经用完了。所以循环的终止条件就设成上面代码里的completed_count < 30 and available_questions——只要其中一个不满足,循环就停,然后执行游戏结束的逻辑,比如显示得分、给小朋友一句鼓励的话。

要是你的题库总数不到30道,游戏会在题用完的时候自动结束,这时候可以提示“题目都做完啦,真棒!”,别硬凑30道。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 08:03:58