有没有办法用Scratch写求和?

问题描述 投票:0回答:2

所以我最近一直在 Scratch 中创建 Cookie Clicker。虽然我一直在向游戏添加建筑物并为这些建筑物添加购买 10 功能,但老实说,我也想向游戏添加购买 100 功能,但我不希望代码为

x+(x*1.15)+(x*1.15^2)+...+(x*1.15^99)
,其中
x
被定义为玩家当前拥有的建筑物的数量,老实说,我不想继续向“购买 10 个 y”代码添加 200 多个代码块。 (在这种情况下,哪栋建筑被购买了 10 次) 4 个阻碍我自己解决这个问题的困难:

  1. 遗憾的是,Scratch 没有用于创建小于/大于或等于函数的块
  2. Scratch 没有求和块
  3. 老实说,我在编码方面很糟糕,所以老实说,我只是想要一个自定义块,让这变得更容易。
  4. Scratch 中不存在正则幂运算,但存在指数表示法 (x*10^y)。

如上所述(我此时刚刚复制并粘贴了代码),我必须将其写为

if z(z 是玩家获得的饼干数量)=

x+(x*1.15)+(x*1.15*1.15)+(x*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15*1.15*1.15*1.15*1.15) or if z > x+(x*1.15)+(x*1.15*1.15)+(x*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15*1.15*1.15*1.15*1.15)

然后将 z 设置为

z - x+(x*1.15)+(x*1.15*1.15)+(x*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15*1.15*1.15*1.15)+(x*1.15*1.15*1.15*1.15*1.15*1.15*1.15*1.15*1.15)

将 cps(每秒 cookie 数)更改为

10 * a
(每秒更改的 cookie 数乘以 10。为简单起见,我通常只是在数字末尾添加一个额外的 0)

通过

(x*1.15*1.15*1.15*1.15*1.15*1.15*1.15*1.15*1.15)

设置 b(y)(正在购买的建筑物的成本)

将 y 更改 10

否则

广播不能购买!

但是,我想写为累积价格,类似于用于确定当您拥有 y 栋建筑物时您需要购买多少 cookie 的公式,例如

bΣ(b=a+1) ((c)(1.15^b))/1.15
,其中
c
是基本成本您想要购买的建筑物类型,
b
是您想要拥有的建筑物类型的编号,
a
是您当前拥有的建筑物类型的编号。

为了消除任何困惑,如果您想查看编辑器,这里是链接。

summary mit-scratch
2个回答
3
投票

我使用了发送给您的 C 程序链接,了解如何计算幂,在 Scratch 中编写了等效函数。适用于正指数和负指数。我对 Scratch 很生疏,所以可能有更好的方法从函数返回,但看起来效果很好。

这应该是您开始所需的全部内容,但如果您仍然遇到问题,我可以尝试提供帮助:

结果:

证明:


0
投票

您要解决的总和是有限几何级数的特殊情况,其公式为:

乳胶:

\sum_{k=0}^n xy^k=\frac{xy^{n+1}-x}{y-1}

代入我们得到的值:

乳胶:

\sum_{k=0}^{100} x(1.15)^k=x\frac{(1.15)^{101}-1}{0.15}=20x\frac{(1.15)^{101}-1}{3}

为了计算 (1.15)^{101},我们可以利用指数函数和对数互为倒数的事实来得到

乳胶:

(1.15)^{101}=e^{101\log(1.15)}

从头开始写这个我们得到

Wolframalpha 给出的近似值为 1350460.46830533172615525572988868491474851495179481437632719

更一般地,如果 x 是初始建筑物数量,n 是要购买的建筑物数量,则可以使用以下公式计算暂存中的总和

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.