使用python代码实现以下功能:创建一个游戏人物的类(GameRole),构造方法中封装三个属性:name、ad(攻击力)、hp(血量),创建一个attack方法,此方法实现互相攻击的功能。测试该类:实例化两个对象,例如:将军ad为20、hp为100,小兵ad为10, hp为80,将军使用attack方法攻击小兵,并提示“谁攻击了谁,谁掉了多少血,还剩多少血”
时间: 2024-02-20 12:01:12 浏览: 15
好的,以下是实现上述功能的Python代码:
```python
class GameRole:
def __init__(self, name, ad, hp):
self.name = name
self.ad = ad
self.hp = hp
def attack(self, enemy):
damage = self.ad
enemy.hp -= damage
print("{}攻击了{},{}掉了{}血,还剩{}血".format(self.name, enemy.name, enemy.name, damage, enemy.hp))
# 测试
general = GameRole("将军", 20, 100)
soldier = GameRole("小兵", 10, 80)
general.attack(soldier)
```
运行结果为:
```
将军攻击了小兵,小兵掉了20血,还剩60血
```
其中,`GameRole` 类定义了一个构造方法,接收三个参数:`name`、`ad`、`hp`,用于初始化游戏人物的属性。同时,还定义了一个 `attack` 方法,接收一个敌人对象作为参数,实现互相攻击的功能。
在测试代码中,我们实例化了两个游戏人物对象:`general` 和 `soldier`,然后调用 `general` 的 `attack` 方法,攻击 `soldier` 对象。最终输出了攻击的结果。