# 问题分析:
# 决战紫禁之巅有两个人物:西门吹雪(blood = 80, mana = 80)、叶倾城(blood = 120, mana = 50)
# 属性:
# name 玩家名称
# blood 玩家血量
# mana 玩家蓝量
# 方法:
# ●stick()捅对方一刀,对方掉血10滴,蓝量减少5
# ●cut()砍对方一刀,对方掉血15滴,蓝量减少10
# ●medicine() 吃一颗药, 补血10滴,蓝量减少15
# ●dead() 如果血量小于等于0,则判定死亡,直接打印状态,结束游戏
# ●__str__打印玩家状态。
class Character:
def __init__(self, name, blood, mana):
self.name = name
self.blood = blood
self.mana = mana
def stick(self):
print("%s刺了对方一刀,对方掉了10滴血,自身蓝量减5点" % self.name)
self.mana = self.mana - 5
def cut(self):
print("%s砍了对方一刀,对方掉了15滴血,自身蓝量减10点" % self.name)
self.mana = self.mana - 10
def medicine(self):
print("%s吃了口药,恢复10滴血,自身蓝量减15点" % self.name)
self.mana = self.mana - 15
def dead(self):
if self.blood <= 0:
print("%s血量为0,已经死亡,游戏结束" % self.name)
exit(0)
def __str__(self):
return "%s的血量为%d,蓝量为%d。" % (self.name, self.blood, self.mana)
def s_round():
behavior = input("请西门吹雪出招")
if behavior == "stick":
if simon.mana >= 5:
simon.stick()
yale.blood = yale.blood - 10
else:
print('你的蓝量过于不够,只能挨打了')
if behavior == "cut":
if simon.mana >= 10:
simon.cut()
yale.blood = yale.blood - 15
elif 5 <= simon.mana < 10:
print("你的蓝量不够砍人,请重新选择")
s_round()
else:
print('你的蓝量过于不够,只能挨打了')
if behavior == "medicine":
if simon.mana >= 15:
simon.medicine()
simon.blood = simon.blood + 10
elif 5 <= simon.mana < 15:
print("你的蓝量不够砍人,请重新选择")
s_round()
else:
print('你的蓝量过于不够,只能挨打了')
yale.dead()
def y_round():
behavior = input("请叶倾城出招")
if behavior == "stick":
if yale.mana >= 5:
yale.stick()
simon.blood = simon.blood - 10
else:
print('你的蓝量过于不够,只能挨打了')
if behavior == "cut":
if yale.mana >= 10:
yale.cut()
simon.blood = simon.blood - 15
elif 5 <= yale.mana < 10:
print("你的蓝量不够砍人,请重新选择")
y_round()
else:
print('你的蓝量过于不够,只能挨打了')
if behavior == "medicine":
if yale.mana >= 15:
yale.medicine()
yale.blood = yale.blood + 10
elif 5 <= yale.mana < 15:
print("你的蓝量不够回血,请重新选择")
y_round()
else:
print('你的蓝量过于不够,只能挨打了')
simon.dead()
print("欢迎来到决战紫禁之巅,先手为吹雪,后手为倾城。stick为刺,cut为砍,medicine为吃药。")
simon = Character("西门吹雪", 80, 80)
yale = Character("叶倾城", 120, 60)
while True:
s_round()
y_round()
print(simon)
print(yale)
决战紫禁之巅——类的应用
最新推荐文章于 2024-08-15 01:55:01 发布
这是一个模拟战斗场景的游戏,玩家可以选择西门吹雪或叶倾城,使用stick、cut、medicine等技能进行攻击或回复。每个角色有特定的血量和蓝量,当血量降为0时角色死亡,游戏结束。玩家需要根据蓝量策略性地选择招式。
摘要由CSDN通过智能技术生成