昨天开始尝试学习python,我已经遇到了T.T. 我试图在python的游戏中创建一个健康功能,我需要不断检查变量运行状况,以确保它不低于0。
health = 10
health = (health - 5)
health = (health - 6)
这里我需要程序运行一个完全独立的代码行,因为health现在等于-1。
我不想if(health <= 0):
...
因为我需要在健康状况改变的地方复制粘贴。
感谢任何帮助,谢谢!
答案 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