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

Pygame开发Hangman游戏时如何让while循环内random.choice仅执行一次?

问题原因

随机选择主题的逻辑写在了每帧都会执行的游戏主循环内,在FPS=60的设置下每秒会重新抽取60次主题,自然会出现持续切换的问题。

解决方法

把主题选择逻辑移到主循环外,仅初始化一次即可,修改后的代码如下:

# 主循环外提前定义主题列表,选定唯一主题,仅执行一次
topics = ["PLACES", "SPORTS", "FOOD AND DRINK", "OPPOSITE WORDS"]
selected_topic = random.choice(topics)

while run:
    clock.tick(FPS)  # FPS = 60

    # draw title
    # 直接使用提前选定的主题渲染,不会再切换
    text = TITLE_FONT.render(selected_topic, 1, BLACK)
    window.blit(text, (WIDTH/2 - text.get_width()/2, 20))

    draw() # not important here

扩展说明

如果后续需要实现「新开局重新随机主题」的功能,只需要在新局触发的逻辑位置(比如玩家猜完单词点击重开按钮时)重新执行一次selected_topic = random.choice(topics)即可,不需要改动主循环内的渲染逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:24:00