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

制作Cookie Clicker时如何阻止两位数变为00?

修复Cookie Clicker出售功能的数值异常问题

嘿,我看到你在做Cookie Clicker时遇到了出售饼干后的数值显示问题,这就来帮你搞定!

问题根源分析

你的代码里出售逻辑的两个错误导致了数值混乱:

  • 变量被意外覆盖:在if click == "1"的块里,你写了for cookies in range(cookies)——这里你把原本存储饼干数量的cookies变量,当成了循环的迭代变量。循环执行时,cookies会被逐个替换成range(cookies)里的数值(比如原来有10个饼干,循环结束后cookies会变成9),这直接破坏了原本的饼干计数,导致后续显示异常。
  • 低效且错误的累加逻辑:就算循环没覆盖变量,逐个累加offer1也完全没必要,还容易因为循环逻辑出错导致数值计算偏差。

另外还有个小问题:你代码里没定义offer1变量,运行时会直接抛出NameError,这个也得补上。

修复后的完整代码

from getkey import getkey

# 初始化变量,先定义offer1的单个饼干售价
money = 0
cookies = 0
offer1 = 1  # 可以根据需求修改这个售价数值

while True:
    print(f"🍪{cookies}\n${money}\n\n[1]offer1: ${offer1} per cookie")
    click = getkey()

    if click == "\n":
        cookies += 1
    elif click == "1":
        # 直接计算出售所有饼干的总收益
        money += cookies * offer1
        # 出售完成后清空饼干数量
        cookies = 0

关键修改点说明

  1. 补上offer1变量定义:给它设置一个合理的单饼干售价,避免运行报错。
  2. 简化出售逻辑:用cookies * offer1直接算出总收益,一次性加到money里,高效又准确。
  3. 出售后清零饼干:把cookies设为0,符合“卖掉所有饼干”的业务逻辑。
  4. 改用elif分支:确保同一时间只会执行点击或出售的其中一个逻辑,避免潜在的分支冲突。

现在测试一下:比如你攒了20个饼干,按下1后,money会增加20×offer1的金额,cookies会变成0,数值显示完全正常,不会再出现随机数字或异常的00啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:55:38