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

如何让每100积分兑换5生命值的逻辑仅触发一次?

解决方案

问题核心是没有记录已触发奖励的分数阈值,导致分数停留在100倍数时,每次调用函数都会重复发放生命值。通过新增跟踪变量即可解决:

修改后的代码

def increase_lives():
    global lives
    global score
    global extralives
    global last_reward_score  # 新增全局变量,跟踪已奖励的最高分数阈值

    # 快捷键触发(保留原有逻辑)
    if keyboard.lctrl and keyboard.ralt:
        extralives = 1
    # 分数达标且未触发过该阈值的奖励
    elif score % 100 == 0 and score != 0 and score > last_reward_score:
        extralives = 1
        last_reward_score = score  # 更新阈值,避免重复触发

    if extralives == 1:
        lives += 5
        extralives -= 1

关键修改点

  • 新增last_reward_score全局变量,需在脚本开头提前定义初始值(比如last_reward_score = 0)
  • 分数判断条件新增score > last_reward_score,确保只有当分数超过上一次奖励的阈值时才触发
  • 触发奖励后立即更新last_reward_score为当前分数,避免同一分数段重复发放
  • 用elif分隔快捷键和分数触发逻辑,避免两种条件同时触发时的冲突

全局变量初始化示例

在脚本开头定义所有全局变量的初始值(按你的实际需求调整):

lives = 3
score = 0
extralives = 0
last_reward_score = 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 05:59:52