不断检查变量Python

时间:2017-11-21 07:52:16

标签: python

昨天开始尝试学习python,我已经遇到了T.T. 我试图在python的游戏中创建一个健康功能,我需要不断检查变量运行状况,以确保它不低于0。

health = 10

health = (health - 5)

health = (health - 6)

这里我需要程序运行一个完全独立的代码行,因为health现在等于-1。

我不想
if(health <= 0):

    ...

因为我需要在健康状况改变的地方复制粘贴。

感谢任何帮助,谢谢!

3 个答案:

答案 0 :(得分:1)

您无需经常查看attack(character, damage)。只要您调用减少健康状况的功能(例如health > 0),您就可以检查是否game_over()。如果没有,您应该致电class Character: def __init__(self, name, hp_max): self.name = name self.xp = 0 self.hp_max = hp_max self.hp = hp_max # TODO: define hp_bar here def is_dead(self): return self.hp <= 0 def attack(self, opponent, damage): opponent.hp -= damage self.xp += damage def __str__(self): return '%s (%d/%d)' % (self.name, self.hp, self.hp_max) hero = Character('Mario', 1000) enemy = Character('Goomba', 100) print(enemy) # Goomba (100/100) hero.attack(enemy, 50) print(enemy) # Goomba (50/100) hero.attack(enemy, 50) print(enemy) # Goomba (0/100) print(enemy.is_dead()) # True print(hero.xp) # 100

以下是相关问题的一些代码:

public function addHelpLink( $to, $overrideBaseUrl = false ) {
    global $wgContLang;
    $msg = $this->msg( $wgContLang->lc( $this->getName() ) . '' );//-helppage

    if ( !$msg->isDisabled() ) {
        $helpUrl = Skin::makeUrl( $msg->plain() );
        $this->getOutput()->addHelpLink( $helpUrl, true );
    } else {
        $this->getOutput()->addHelpLink( $to, $overrideBaseUrl );
    }
}

答案 1 :(得分:0)

我不熟悉python语言,但我的建议可以转移到python。

创建一个降低运行状况值但从不返回低于零值的函数。这是伪代码:

function integer decreaseHealth(parameter health, parameter loss)
{
     integer newHealth = health - loss
     if (health < 0)
         return 0
     else
         return newHealth
}

答案 2 :(得分:0)

所以我需要输入类似

的内容
if(health <= 0)"
    print("Game over")
else:
    print("New health")

遗憾的是,python中没有这样的东西,希望我能把它放在我的代码之前:

cont if(health <= 0): 
    print("Game over")

这意味着每当健康状况达到0或更低时,无论在此之后代码中的哪个地方,Game Over都会打印出来。

然后,当健康状况被剥夺健康时,我不需要输入任何东西=健康 - 1