将变量重置为先前的状态

时间:2016-05-19 07:18:40

标签: python variables

d + stat_summary(fun.data = "mean_cl_boot", colour = "red", 
                 size = 2, geom = "linerange") + 
    stat_summary(fun.data = "mean_cl_boot", colour = "blue", 
                 size = 1.8, geom = "point", shape = 4)

我有一个问题,当我再次进行战斗时,敌人仍然是相同的,并且仍然有0或更少的健康。我认为enemynum会选择一个不同的敌人,但它并没有,我也不知道如何将健康等敌人变量重置为70.

2 个答案:

答案 0 :(得分:1)

我认为你每次死亡时都应该创造新的敌人实例。在preFight功能:

def preFight():
    global enemy
    enemynum=random.randint(1,3)
    if enemynum==1:
        enemy=goblin("Goblin")
    elif enemynum==2:
        enemy=zombie("Zombie")
    elif enemynum==3:
        enemy=skeleton("Skeleton")
    fight()

答案 1 :(得分:1)

在每个敌人类定义下,你创建一个这样的敌人对象:

class goblin():
    def __init__(self,name):
        self.name=name
        self.maxhealth=50
        self.health=self.maxhealth
        self.attack=5
        self.goldgain=10
goblinIG=goblin("Goblin")

但是当你使用prefight()时,你只会引用同一个敌人对象。因此,一旦该对象的健康状况设置为0,它就会保持这种状态,你就这样继续引用它:

def preFight():
    global enemy
    enemynum=random.randint(1,3)
    if enemynum==1:
        enemy=goblinIG
    elif enemynum==2:
        enemy=zombieIG
    elif enemynum==3:
        enemy=skeletonIG
    fight()

每次都应该通过

创建新的敌人对象
enemy = goblin("goblin")

或者你想做的任何一个。