0

新手在这里。

好吧,长话短说,我制作了一个 var,它将输出 70 到 155 之间的随机数:

T_dmg = random.randrange(70,155)

这是我的“乘数”:

def crit(cr):
    return cr * 2

Crit 代表关键,但我不确定如何使用“return”语句。所以我在数字相加之前将此函数添加到该行:

if Toni > 0:
        crit(T_dmg)
        Xoni = Xoni - T_dmg

问题是输出永远不会成倍增加,因为不知何故,“暴击”功能似乎不适用于它。Xoni 是一个值为 7000 的变量。如果这没有意义,我正在使用游戏概念中的 HP。我希望你们中的任何人都可以有所启发。

谢谢!

编辑:机会码:

def critchance():
    random.randrange(1,10)
    if critchance() == "3"
    crit()
4

1 回答 1

1

该函数返回一个值 - 它不会更改输入变量。您仍然必须分配T_dmg给函数的输出。

T_dmg = crit(T_dmg)

否则T_dmg将保持不变,给你“奇怪”的结果。

你的critchance函数也关闭了——它是无限递归的。我们需要解决这个问题。此外,您似乎正在调用crit没有参数的函数。您可能应该将T_dmg其作为参数传递给此函数。

def critchance(cr):
    if random.randrange(1, 10) == 3:
        return crit(cr)
    return cr

然后调用它,执行此操作。

T_dmg = critchance(T_dmg)
于 2013-02-28T20:05:16.383 回答