简单功能不实习

Simple function not interning

我正在写一个简单的基于文本的游戏,并编写了一个简单的战斗系统。该系统就像剪刀石头布一样工作。它会迭代循环,甚至不会移动通过第一个打印行。谢谢!

这是在 Python3

我试过将其设为整数、字符串、if to elif 和 back,以及许多其他东西。谢谢!

def combat(ehealth,ename):
    while (ehealth > 0):
        playerhit=int(input("Would you like to [1] Stab, [2] Swipe, or [3] Bash?   "))
        comhit=random.uniform(1,3)
        if playerhit==1:
            if comhit==1:
                print("The", ename, "parryed the attack")
            elif comhit==2:
                print("The", ename, "blocked the attack")
            elif comhit==3:
                ehealth=ehealth-1
                print("You hit the", ename,"!")
        elif playerhit==2:
            if comhit==1:
                ehealth=ehealth-1
                print("You hit the", ename,"!")
            elif comhit==2:
                print ("The", ename, "parryed the attack")
            elif comhit==3:
                print("The", ename, "blocked the attack")
        elif playerhit==3:
            if comhit==1:
                print("The", ename, "blocked the attack")
            elif comhit==2:
                ehealth=ehealth-1
                print("You hit the", ename,"!")
            elif comhit==3:
                print("The", ename, "blocked the attack")

我希望函数在 "ehealth" 达到零时结束循环

它不会使其通过第一个打印语句,因为它会一遍又一遍地循环输入。

再次感谢, 史蒂文

random.uniform(1,3)

这就是问题所在。它 returns 是一个随机浮点数而不是整数。您永远不会到达任何嵌套的 if 语句。

尝试random.choice(range(1,4))

或者更好的是,

random.randint(1, 3)