创建一个游戏人物的类(GameRole),构造方法中封装三个属性:name、ad(攻击力)、hp(血量),创建一个attack方法,此方法实现互相攻击的功能。测试该类:实例化两个对象,例如:将军ad为20、hp为100,小兵ad为10, hp为80,将军使用attack方法攻击小兵,并提示“谁攻击了谁,谁掉了多少血,还剩多少血”(35分)
时间: 2024-02-20 22:01:39 浏览: 9
好的,我可以帮你解决这个问题。
以下是GameRole类的代码实现:
```python
class GameRole:
def __init__(self, name, ad, hp):
self.name = name
self.ad = ad
self.hp = hp
def attack(self, target):
damage = self.ad # 计算攻击伤害
target.hp -= damage # 减少目标血量
print(f"{self.name}攻击了{target.name},造成了{damage}点伤害,{target.name}还剩{target.hp}点血量。")
```
在上面的代码中,我们定义了一个GameRole类,该类有三个属性:name、ad、hp,分别代表角色的名字、攻击力和血量。该类还有一个attack方法,实现互相攻击的功能。在attack方法中,我们计算攻击伤害,并减少目标血量,最后输出攻击结果。
接下来是测试代码,用于实例化两个对象,调用attack方法进行攻击:
```python
if __name__ == '__main__':
general = GameRole("将军", 20, 100)
soldier = GameRole("小兵", 10, 80)
general.attack(soldier)
```
在上面的代码中,我们创建了一个名为general的将军对象,和一个名为soldier的小兵对象,将军的攻击力为20、血量为100,小兵的攻击力为10、血量为80。接着,我们调用general对象的attack方法,攻击soldier对象。
执行上面的测试代码,输出结果如下:
```
将军攻击了小兵,造成了20点伤害,小兵还剩60点血量。
```
可以看到,将军成功攻击了小兵,造成了20点伤害,小兵还剩60点血量。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![cs](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)