我是一个非常新的编程并且一直在学习Python,我决定尝试通过OOP创建一个基于文本的冒险,到目前为止,我已经成功克服了自己的问题,但我仍然坚持这个问题我无法解决,这里是代码:
class player:
def __init__(self, name, health):
self.name = name
self.health = health
Player_1 = player ('Bob', 80)
class enemies:
def __init__ (self, description, health, damage):
self.description = description
self.health = health
self.damage = damage
def __str__ (self):
return '{} , {} , {}'.format (self.description, self.health, self.damage)
def enemy_damage (self):
Player_1.health - random_enemy1
return Player_1.health
random_enemy1 = enemies ('Goon', 40, 5)
目前我只是测试此代码,然后在游戏中完全应用它,当调用enemy_damage方法(random_enemy1.enemy_damage)时,我可以成功地将玩家的生命值降低5,但问题在于玩家健康状况尚未更新,因此下次运行enemy_damage方法时,玩家的健康状况将恢复到80.
有人可以帮忙吗?我如何让玩家健康更新?我已经看了很多关于课堂方法的视频等等,但是无法解决这个问题,我知道代码对于我想要做的事情来说可能很糟糕,但我只是想找到这个东西。此刻工作,之后我将使用其他方法来减少代码量并改进它。
非常感谢
答案 0 :(得分:1)
您可以像这样定义PS F:\Bizfi> dir -r | Out-GridView | Select FullName, LastWriteTime
:
enemy_damage
然后像这样使用它:
def enemy_damage(self, enemy):
enemy.health -= self.damage
return enemy.health
除此之外,我建议为敌人和玩家使用一个公共类,名为print("Player_1's health before damage: " + Player_1.health)
Player_1 = player('Bob', 80)
random_enemy1 = enemies('Goon', 40, 5)
random_enemy1.enemy_damage(Player_1)
print("Player_1's health after damage: " + Player_1.health)
。
根据PEP8,类名通常应使用CapWords惯例。请参阅文档here。