Python点击器游戏:如何阻止满足条件的if语句重复执行?
解决点击器游戏成就重复触发的问题
问题核心是没有记录成就的解锁状态,每次点击只要点击数达标就会重复触发提示。要修复这个问题,只需添加一个状态变量来跟踪成就是否已经解锁,只有在未解锁且点击数达标的情况下才触发提示,并标记成就为已解锁。
修改后的代码示例:
# 初始化全局变量 x = 0 y = 1 achievement_1_unlocked = False # 新增成就状态变量 def clicks(): global x global y global achievement_1_unlocked x = x + y print(x, "clicks") # 1000 clicks 成就判断 if x >= 1000 and not achievement_1_unlocked: print('Achievement Unlocked: Clicker Beginner! (Achievement 1/7)') achievement_1_unlocked = True # 标记成就已解锁
关键修改点:
- 新增
achievement_1_unlocked全局变量,初始值为False,代表成就未解锁 - 判断条件增加
and not achievement_1_unlocked,确保只有未解锁时才触发提示 - 触发成就后立即将
achievement_1_unlocked设为True,避免后续重复触发
如果需要添加更多成就,只需为每个成就单独设置对应的状态变量(比如achievement_2_unlocked、achievement_3_unlocked等),重复上述逻辑即可。
内容的提问来源于stack exchange,提问作者wackyninja303
相关产品推荐
相关产品推荐

