问题分析
-
决战紫禁之巅有两个人物,西门吹薛以及叶孤毕
-
属性
-
name玩家的名字
-
blood玩家血量
-
-
方法
-
tong()捅对方一刀,对方掉血10滴
-
kanren()砍对方一刀,对方掉血15滴
-
chiyao()吃一颗药,补血10滴
-
__ str __打印玩家状态
-
-
实现步骤
-
1、定义类,创建__ init __ 方法
import time #导入时间的库 #创建类 class Hero(object): #创建初始化方法 def __init__(self, name): """ 定义name,blood属性 :param name:角色名 """ self.name = name self.blood = 100
-
2、创建玩家技能方法
def tong(self,enemy): """ 捅对方一刀 :param enemy:敌人 :return: """ enemy.blood -= 10 info = '%s 捅了 %s 一刀'%(self.name,enemy.name) print(info) def kanren(self,enemy): """ 砍对方一刀 :param enemy:敌人 :return: """ enemy.blood -= 15 info = '%s 砍了 %s 一刀'%(self.name,enemy.name) print(info) def chiyao(self): """ 吃药补血 :return: """ self.blood += 10 info = '%s 吃了一颗补血药,加10滴血'%(self.name) print(info)
-
3、创建__ str__ 方法,输出玩家状态
def __str__(self): return '%s 还剩下%s血'%(self.name,self.blood)
-
4、创建西门吹薛以及叶孤毕两个人物
xbw = Hero('西门吹薛') bwh = Hero('叶孤毕')
-
5、两个人开始互砍
while True: if bwh.blood <= 0 or xbw.blood <= 0: #满足条件 就退出循环 break xbw.tong(bwh) #薛捅了毕一刀 print(bwh) print(xbw) #打印两者的状态 print('*' * 30) #分隔 bwh.kanren(xbw) #毕砍了薛一刀 print(bwh) print(xbw) #打印两者的状态 print('*' * 30) #分隔 xbw.chiyao() #薛吃药补血 print(bwh) print(xbw) #打印两者的状态 print('*' * 30) #分隔 time.sleep(1) #休眠一秒钟 print('————————————对战结束————————————')
运行结果:
完整代码:
import time #导入时间的库
#创建类
class Hero(object):
#创建初始化方法
def __init__(self, name):
#定义name,blood属性
self.name = name
self.blood = 100
def tong(self, enemy):
"""
捅对方一刀
"""
enemy.blood -= 10
info = '%s 捅了 %s 一刀'%(self.name, enemy.name)
print(info)
def kanren(self, enemy):
"""
砍对方一刀
"""
enemy.blood -= 15
info = '%s 砍了 %s 一刀'%(self.name, enemy.name)
print(info)
def chiyao(self):
"""
吃药补血
"""
self.blood += 10
info = '%s 吃了一颗补血药,加10滴血'%self.name
print(info)
def __str__(self):
return '%s 还剩下%s血'%(self.name,self.blood)
xbw = Hero('西门吹薛')
bwh = Hero('叶孤毕')
while True:
if bwh.blood<=0 or xbw.blood<=0:
# 满足条件 就退出循环
break
xbw.tong(bwh) # 薛捅了毕一刀
print(bwh)
print(xbw) # 打印两者的状态
print('*'*30) # 分隔
bwh.kanren(xbw) # 毕砍了薛一刀
print(bwh)
print(xbw) # 打印两者的状态
print('*'*30) # 分隔
xbw.chiyao() # 薛吃药补血
print(bwh)
print(xbw) # 打印两者的状态
print('*'*30) # 分隔
time.sleep(1) # 休眠一秒钟
print('————————————对战结束————————————')