2. 新建一个类Warrior,该类从Fighter类继承: 该类改写父类attack方法,伤害计算如父类,但有20%几率致命一击,致命一击时伤害增加80%。并打印出“***致命一击,对***造成了***点伤害”。 python
时间: 2023-09-10 20:06:26 浏览: 86
好的,以下是代码实现:
```python
import random
class Fighter:
def __init__(self, name, hp):
self.name = name
self.hp = hp
def attack(self, enemy):
damage = random.randint(10, 20)
enemy.hp -= damage
print(f"{self.name}攻击了{enemy.name},造成了{damage}点伤害")
if enemy.hp <= 0:
print(f"{enemy.name}被击败了!")
class Warrior(Fighter):
def attack(self, enemy):
if random.random() < 0.2:
damage = random.randint(10, 20) * 1.8
print(f"{self.name}致命一击,对{enemy.name}造成了{damage}点伤害")
else:
damage = random.randint(10, 20)
print(f"{self.name}攻击了{enemy.name},造成了{damage}点伤害")
enemy.hp -= damage
if enemy.hp <= 0:
print(f"{enemy.name}被击败了!")
```
上述代码中,我们定义了一个父类`Fighter`,并在其中定义了一个攻击方法`attack`。接着,我们又定义了一个子类`Warrior`,并覆盖了父类的`attack`方法。在新的`attack`方法中,我们使用了`random`库来随机生成一个数,如果小于0.2,则认为是致命一击,伤害增加80%;否则按照父类的伤害计算方法进行处理。在处理完伤害后,我们打印出相应的信息,包括攻击者、被攻击者以及造成的伤害。
阅读全文