python class类的属性应用及init初始化实践 ---勇者斗恶龙

  最近在熟悉python的基础语法,刚好老师布置了个课后作业感觉挺有意思的,就记录下来了学习过程。

题目如下:

 

 

刚拿到题目就想到了init 初始化属性,还列了下思路:(ps:notepad++写的比较糙)

 

 

 最终成品就长这样,编码的时候还遇到用A的攻击攻击A的情况,后来修正了一波,勉强算是符合老师的要求了。里面的数据没考虑合理性, 有软测的可以帮忙跑跑找找bug。也欢迎完善指正~~

复制代码
 1 #!/usr/bin/python3
 2 # -*- coding: utf-8 -*-
 3 # @Time    : 2020/4/11:13:51
 4 # @Author  : 翼风语
 5 
 6 import random
 7 class hero():
 8     def __init__(self, hp, ap, wq=0):
 9         '''
10         set default param
11         :param hp: 生命
12         :param ap: 攻击
13         :param wq: 武器伤害
14         '''
15         self.hp = hp
16         self.ap = ap
17         self.wq = wq
18 
19     def hurt(self,value):
20         self.hp = self.hp - value
21         print("勇者受到了 "+str(value)+" 点伤害,生命还有"+str(self.hp))
22         if(self.hp <= 0):
23             print("一切都是命中注定,是否卷土重来?")
24             raise
25 
26 class dinosaur():
27     def __init__(self, hp, ap):
28         """
29         set default param
30         :param hp:
31         :param ap:
32         """
33         self.hp = hp
34         self.ap = ap
35     def hurt(self,value):
36         self.hp = self.hp - value
37         print("恶龙受到了 "+str(value)+" 点伤害,生命还有"+str(self.hp))
38         if(self.hp <= 0):
39             print("恭喜你完成了‘世界和平’任务")
40             raise
41 
42 if __name__ == "__main__":
43     su = hero(200,10,25)
44     mk = dinosaur(1000,3)
45     n = 1
46     while True:
47         i = random.randint(0,5) # 伤害上限高
48         j = random.randint(1,3) # 输出比较稳
49         try:
50             print("-------round:%s------" % str(n))
51             su.hurt(i+mk.ap)
52             mk.hurt(j+su.ap+su.wq)
53             n= n+1
54         except:
55             break
复制代码

   最后贴上执行效果图:在第二十七回合 --世界和平了

     

 

posted @   平行时空的旅者  阅读(1010)  评论(2编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示