python_练习(小李飞刀大战伏地魔)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python_练习(小李飞刀大战伏地魔),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3096字,纯文字阅读大概需要5分钟。
内容图文
![python_练习(小李飞刀大战伏地魔)](/upload/InfoBanner/zyjiaocheng/598/7840a2877b024c0bba492696e11bff9e.jpg)
查看详细信息的网址
http://www.pythontutor.com/visualize.html#mode=edit
# 小李飞刀大战伏地魔
# 通过对象来实现
# 小李将飞刀放入刀袋中,然后带着刀带去找伏地魔,小李飞刀从刀带拿出飞刀飞伏地魔,伏地魔受到伤害
# 需要的类:
# Person
# -属性
# -name 姓名
# -hp 生命值
# -kb 刀带
# -方法
# -带刀带(take_kb)
# -放刀(put_knife_in_kb)
# -取刀(get_knife)
# -飞刀(fly_knife)
# -受伤(掉血 injured)
#
# knife_bag
# 属性:-name 名字 -size 容量 -bag[] 放刀
# 方法:
# -放刀 put_in_bag
# -取刀 get_knife
# knife
# 属性:
# -name 名字
# -attack 伤害
# 方法:
# -伤害 damage
class Knife:
'''
定义飞刀的类
'''
def __init__(self, name, attack):
self.name = name # 刀名
self.attack = attack # 攻击力
def damage(self, other):
'''
造成伤害的方法
'''
other.injured(self.attack)
def __str__(self):
return f'{self.name}攻击力为 {self.attack}'
# kn = Knife('小刀', 10)
# print(kn)
# knife_bag
# 属性:-name 名字 -size 容量 -bag[] 放刀
# 方法:
# -放刀 put_in_bag
# -取刀 get_knife
class Knife_bag:
def __init__(self, name, size):
self.name = name # 名字
self.size = size # 容量
self.bag = [] # 装刀的容器
def put_in(self, kf):
'''
把刀放入到袋中
'''
# 判断满没满
if len(self.bag) < self.size:
self.bag.append(kf)
def get_knife(self):
'''
从袋中取刀
'''
if len(self.bag) == 0:
return None
return self.bag.pop()
def kn_count(self):
return len(self.bag)
def __str__(self):
if self.bag:
return f'{self.name}, 容量是{self.size}, 现在有{self.kn_count()}把{self.bag[0]}'
else:
return f'{self.name}, 容量是{self.size}, 现在是空的'
# kb = Knife_bag('NIKE刀带', 10)
# kb.put_in(Knife('小刀', 10))
# print(kb.get_knife())
# print(kb.get_knife())
# print(kb)
# Person
# -属性
# -name 姓名
# -hp 生命值
# -kb 刀带
# -方法
# -带刀带(take_kb)
# -放刀(put_knife_in_kb)
# -取刀(get_knife)
# -飞刀(fly_knife)
# -受伤(掉血 injured)
class Person(object):
'''表示人的类'''
def __init__(self, name):
self.name = name # 名字
self.hp = 100 # 生命值
self.kb = None # 刀袋
def put_knife_in_kb(self, kf, kb):
'''
将刀放入刀袋中
'''
kb.put_in(kf)
def take_kb(self, kb):
'''将刀带带到身上'''
self.kb = kb
def get_knife(self):
'''取刀'''
if self.kb:
return self.kb.get_knife()
def fly_knife(self, other):
# 取刀
kf = self.get_knife()
# 检查刀有没有
if kf:
# 飞
kf.damage(other)
def injured(self, attack):
'''受伤'''
self.hp -= attack
if self.hp < 0:
self.hp = 0
def __str__(self):
if not self.hp:
return f'{self.name} 生命值{self.hp} 已挂'
if self.kb:
return f'{self.name} 生命值{self.hp} 带着 {self.kb}'
return f'{self.name} 生命值{self.hp} 什么也没拿'
# 创建一个人
# hero = Person('李寻欢')
# hero.put_knife_in_kb(Knife('小刀', 10), kb)
# hero.take_kb(kb)
# print(hero)
# 创建两个人
hero = Person('小李')
npc = Person('伏地魔')
# 创建刀袋
kb = Knife_bag('NIKE刀带', 20)
# 小李,向袋中装刀
for i in range(20):
hero.put_knife_in_kb(Knife('小刀', 10), kb)
# 将刀袋带在身上
hero.take_kb(kb)
print(hero)
print(npc)
print('-'* 60)
# 发起攻击
for i in range(15):
hero.fly_knife(npc)
print(npc)
内容总结
以上是互联网集市为您收集整理的python_练习(小李飞刀大战伏地魔)全部内容,希望文章能够帮你解决python_练习(小李飞刀大战伏地魔)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。