Commit 139e369f by BellCodeEditor

save project

parent ab336b35
Showing with 179 additions and 109 deletions
import random import random
bd1=0
class Hero(object): class Hero(object):
def __init__(self,hero_type,name): def __init__(self,hero_type,name,tili,max_tili):
h_tili=5 self.tili=tili
h_max_tili=10 self.max_tili=max_tili
self.bd=0
self.name = name self.name = name
self.level = 1 self.level = 1
self.hp = 260 self.hp = 260
...@@ -15,27 +14,42 @@ class Hero(object): ...@@ -15,27 +14,42 @@ class Hero(object):
print("当前等级、血量、攻击力分别为:",self.level,self.hp,self.attack) print("当前等级、血量、攻击力分别为:",self.level,self.hp,self.attack)
def cure(self): # 治疗 def cure(self,tili,max_tili): # 治疗
self.hp=self.hp+60 self.hp=self.hp+60
h_tili=h_tili-3 tili=tili-3
if self.hp>self.max_hp: if self.hp>self.max_hp:
self.hp=self.max_hp self.hp=self.max_hp
print(self.name+"使用了治疗,血量增加:", 60,",目前的血量为:",self.hp+"体力减少3,目前的体力为:",h_tili) print(self.name+"使用了治疗,血量增加:", 60,",目前的血量为:",self.hp+"体力减少3,目前的体力为:",tili)
h_tili=h_tili+2 tili=tili+2
if h_tili>h_max_tili: if tili>max_tili:
h_tili=h_max_tili tili=max_tili
print("出招后,体力回复2点,目前的体力为:",h_tili) print("出招后,体力回复2点,目前的体力为:",tili)
def combat(self, enemy): # 普通攻击 def combat(self, enemy,tili,max_tili): # 普通攻击
enemy.hp -= self.attack enemy.hp -= self.attack
if bd1==5: if self.bd>5:
enemy.hp -=20 enemy.hp -=20
bd1=bd1-5 self.bd=self.bd-6
if enemy.hp > 0: if enemy.hp > 0:
info1 = self.name+"对"+enemy.name+"发起用荣耀被动攻击," info1 = self.name+"对"+enemy.name+"发起用荣耀被动攻击,"
info2 = "造成"+str(self.attack+10)+"点伤害," info2 = "造成"+str(self.attack+10)+"点伤害,"
info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量" info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量"
info4="消耗被动值6点,目前的被动值为:",self.bd
info = info1+info2+info3
print(info)
else:
info3 = enemy.name+"阵亡,游戏结束"
info = info1+info2+info3
print(info)
exit()
elif self.bd==5:
enemy.hp -=16
self.bd=self.bd-5
if enemy.hp > 0:
info1 = self.name+"对"+enemy.name+"发起终极被动攻击,"
info2 = "造成"+str(self.attack+10)+"点伤害,"
info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量"
info4="消耗被动值5点,目前的被动值为:0" info4="消耗被动值5点,目前的被动值为:0"
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
...@@ -44,11 +58,11 @@ class Hero(object): ...@@ -44,11 +58,11 @@ class Hero(object):
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
exit() exit()
elif bd1==4: elif self.bd==4:
enemy.hp -=15 enemy.hp -=12
bd1=bd1-4 self.bd=self.bd-4
if enemy.hp > 0: if enemy.hp > 0:
info1 = self.name+"对"+enemy.name+"发起超被动攻击," info1 = self.name+"对"+enemy.name+"发起超被动攻击,"
info2 = "造成"+str(self.attack+10)+"点伤害," info2 = "造成"+str(self.attack+10)+"点伤害,"
info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量" info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量"
info4="消耗被动值4点,目前的被动值为:0" info4="消耗被动值4点,目前的被动值为:0"
...@@ -59,9 +73,9 @@ class Hero(object): ...@@ -59,9 +73,9 @@ class Hero(object):
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
exit() exit()
elif bd1==3: elif self.bd==3:
enemy.hp -=10 enemy.hp -=8
bd1=bd1-3 self.bd=self.bd-3
if enemy.hp > 0: if enemy.hp > 0:
info1 = self.name+"对"+enemy.name+"发起强被动攻击," info1 = self.name+"对"+enemy.name+"发起强被动攻击,"
info2 = "造成"+str(self.attack+10)+"点伤害," info2 = "造成"+str(self.attack+10)+"点伤害,"
...@@ -74,9 +88,9 @@ class Hero(object): ...@@ -74,9 +88,9 @@ class Hero(object):
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
exit() exit()
elif bd1==2: elif self.bd==2:
enemy.hp -=5 enemy.hp -=4
bd1=bd1-2 self.bd=self.bd-2
if enemy.hp > 0: if enemy.hp > 0:
info1 = self.name+"对"+enemy.name+"发起被动攻击," info1 = self.name+"对"+enemy.name+"发起被动攻击,"
info2 = "造成"+str(self.attack+5)+"点伤害," info2 = "造成"+str(self.attack+5)+"点伤害,"
...@@ -90,12 +104,12 @@ class Hero(object): ...@@ -90,12 +104,12 @@ class Hero(object):
print(info) print(info)
exit() exit()
else: else:
bd1=bd1+1 self.bd=self.bd+1
if enemy.hp > 0: if enemy.hp > 0:
info1 = self.name+"对"+enemy.name+"发起攻击," info1 = self.name+"对"+enemy.name+"发起攻击,"
info2 = "造成"+str(self.attack)+"点伤害," info2 = "造成"+str(self.attack)+"点伤害,"
info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量" info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量"
info4="被动值增加1点,目前的被动值为:",bd1 info4="被动值增加1点,目前的被动值为:",self.bd
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
else: else:
...@@ -103,13 +117,13 @@ class Hero(object): ...@@ -103,13 +117,13 @@ class Hero(object):
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
exit() exit()
h_tili=h_tili+2 tili=tili+2
if h_tili>h_max_tili: if tili>max_tili:
h_tili=h_max_tili tili=max_tili
print("出招后,体力回复2点,目前的体力为:",h_tili) print("出招后,体力回复2点,目前的体力为:",tili)
def dacombat(self, enemy): #大招:暴击 def dacombat(self, enemy,tili,max_tili): #大招:暴击
self.tili=self.tili-10 self.tili=self.tili-10
info1 = self.name+"对"+enemy.name+"发起大招:暴击," info1 = self.name+"对"+enemy.name+"发起大招:暴击,"
info2 = "暴击造成"+str(self.attack*2)+"点伤害," info2 = "暴击造成"+str(self.attack*2)+"点伤害,"
...@@ -123,12 +137,12 @@ class Hero(object): ...@@ -123,12 +137,12 @@ class Hero(object):
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
exit() exit()
h_tili=h_tili+2 tili=tili+2
if h_tili>h_max_tili: if tili>max_tili:
h_tili=h_max_tili tili=max_tili
print("出招后,体力回复2点,目前的体力为:",h_tili) print("出招后,体力回复2点,目前的体力为:",tili)
def zhongcombat(self, enemy): #中招:圣盾防御 def zhongcombat(self, enemy,tili,max_tili): #中招:圣盾防御
self.tili=self.tili-7 self.tili=self.tili-7
sdfy=random.randint(1,3) sdfy=random.randint(1,3)
if sdfy==3: if sdfy==3:
...@@ -148,35 +162,35 @@ class Hero(object): ...@@ -148,35 +162,35 @@ class Hero(object):
info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量" info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量"
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
h_tili=h_tili+2 tili=tili+2
if h_tili>h_max_tili: if tili>max_tili:
h_tili=h_max_tili tili=max_tili
print("出招后,体力回复2点,目前的体力为:",h_tili) print("出招后,体力回复2点,目前的体力为:",tili)
def xiaocombat(self, enemy): #小招:强化 def xiaocombat(self, enemy,tili,max_tili): #小招:强化
self.tili=self.tili-4 self.tili=self.tili-4
self.hp=self.hp+25 self.hp=self.hp+25
bd1=bd1+3 self.bd=self.bd+3
if self.hp>self.max_hp: if self.hp>self.max_hp:
self.hp=self.max_hp self.hp=self.max_hp
print(self.name+"使用了治疗,血量增加:", 55,",目前的血量为:",self.hp+"体力减少3,目前的体力为:",self.tili) info1 = self.name+"开启强化,血量增加:"+str(25) +",目前的血量为:"+self.hp+"被动值增加1点,目前的被动值为:"+self.bd+"体力减少4,目前的体力为:",self.tili
info1 = self.name+"开启强化,血量增加:", 25,",目前的血量为:",self.hp+"被动值增加1点,目前的被动值为:",bd1+"体力减少4,目前的体力为:",self.tili
print(info1) print(info1)
h_tili=h_tili+2 tili=tili+2
if h_tili>h_max_tili: if tili>max_tili:
h_tili=h_max_tili tili=max_tili
print("出招后,体力回复2点,目前的体力为:",h_tili) print("出招后,体力回复2点,目前的体力为:",tili)
class Player(object): class Player(object):
def __init__(self,hero_type,name): def __init__(self,hero_type,name,tili,max_tili):
p_tili=5 self.tili=tili
p_max_tili=10 self.max_tili=max_tili
self.bd=0
self.name = name self.name = name
self.level = 1 self.level = 1
self.hp = 200 self.hp = 210
self.attack = 50 self.attack = 50
self.max_hp = self.hp self.max_hp = self.hp
self.hero_type = hero_type self.hero_type = hero_type
...@@ -184,27 +198,42 @@ class Player(object): ...@@ -184,27 +198,42 @@ class Player(object):
print("当前等级、血量、攻击力分别为:",self.level,self.hp,self.attack) print("当前等级、血量、攻击力分别为:",self.level,self.hp,self.attack)
def cure(self): # 治疗 def cure(self,tili,max_tili): # 治疗
self.hp=self.hp+50 self.hp=self.hp+50
p_tili=p_tili-3 self.tili=self.tili-3
if self.hp>self.max_hp: if self.hp>self.max_hp:
self.hp=self.max_hp self.hp=self.max_hp
print(self.name+"使用了治疗,血量增加:",50,",目前的血量为:",self.hp+"体力减少3,目前的体力为:",p_tili) print(self.name+"使用了治疗,血量增加:",50,",目前的血量为:",self.hp+"体力减少3,目前的体力为:",p_tili)
p_tili=p_tili+2 self.tili=self.tili+2
if p_tili>p_max_tili: if self.tili>self.max_tili:
p_tili=p_max_tili self.tili=self.max_tili
print("出招后,体力回复2点,目前的体力为:",p_tili) print("出招后,体力回复2点,目前的体力为:",self.tili)
def combat(self, enemy): # 普通攻击 def combat(self, enemy,tili,max_tili): # 普通攻击
enemy.hp -= self.attack enemy.hp -= self.attack
if bd1==5: if self.bd>5:
enemy.hp -=20 enemy.hp -=20
bd1=bd1-5 self.bd=self.bd-6
if enemy.hp > 0: if enemy.hp > 0:
info1 = self.name+"对"+enemy.name+"发起用荣耀被动攻击," info1 = self.name+"对"+enemy.name+"发起用荣耀被动攻击,"
info2 = "造成"+str(self.attack+10)+"点伤害," info2 = "造成"+str(self.attack+10)+"点伤害,"
info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量" info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量"
info4="消耗被动值6点,目前的被动值为:",self.bd
info = info1+info2+info3
print(info)
else:
info3 = enemy.name+"阵亡,游戏结束"
info = info1+info2+info3
print(info)
exit()
elif self.bd==5:
enemy.hp -=16
self.bd=self.bd-5
if enemy.hp > 0:
info1 = self.name+"对"+enemy.name+"发起终极被动攻击,"
info2 = "造成"+str(self.attack+10)+"点伤害,"
info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量"
info4="消耗被动值5点,目前的被动值为:0" info4="消耗被动值5点,目前的被动值为:0"
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
...@@ -213,11 +242,11 @@ class Player(object): ...@@ -213,11 +242,11 @@ class Player(object):
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
exit() exit()
elif bd1==4: elif self.bd==4:
enemy.hp -=15 enemy.hp -=12
bd1=bd1-4 self.bd=self.bd-4
if enemy.hp > 0: if enemy.hp > 0:
info1 = self.name+"对"+enemy.name+"发起超被动攻击," info1 = self.name+"对"+enemy.name+"发起超被动攻击,"
info2 = "造成"+str(self.attack+10)+"点伤害," info2 = "造成"+str(self.attack+10)+"点伤害,"
info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量" info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量"
info4="消耗被动值4点,目前的被动值为:0" info4="消耗被动值4点,目前的被动值为:0"
...@@ -228,9 +257,9 @@ class Player(object): ...@@ -228,9 +257,9 @@ class Player(object):
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
exit() exit()
elif bd1==3: elif self.bd==3:
enemy.hp -=10 enemy.hp -=8
bd1=bd1-3 self.bd=self.bd-3
if enemy.hp > 0: if enemy.hp > 0:
info1 = self.name+"对"+enemy.name+"发起强被动攻击," info1 = self.name+"对"+enemy.name+"发起强被动攻击,"
info2 = "造成"+str(self.attack+10)+"点伤害," info2 = "造成"+str(self.attack+10)+"点伤害,"
...@@ -243,9 +272,9 @@ class Player(object): ...@@ -243,9 +272,9 @@ class Player(object):
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
exit() exit()
elif bd1==2: elif self.bd==2:
enemy.hp -=5 enemy.hp -=4
bd1=bd1-2 self.bd=self.bd-2
if enemy.hp > 0: if enemy.hp > 0:
info1 = self.name+"对"+enemy.name+"发起被动攻击," info1 = self.name+"对"+enemy.name+"发起被动攻击,"
info2 = "造成"+str(self.attack+5)+"点伤害," info2 = "造成"+str(self.attack+5)+"点伤害,"
...@@ -259,12 +288,12 @@ class Player(object): ...@@ -259,12 +288,12 @@ class Player(object):
print(info) print(info)
exit() exit()
else: else:
bd1=bd1+1 self.bd=self.bd+1
if enemy.hp > 0: if enemy.hp > 0:
info1 = self.name+"对"+enemy.name+"发起攻击," info1 = self.name+"对"+enemy.name+"发起攻击,"
info2 = "造成"+str(self.attack)+"点伤害," info2 = "造成"+str(self.attack)+"点伤害,"
info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量" info3 = enemy.name+"还剩下"+str(enemy.hp)+"血量"
info4="被动值增加1点,目前的被动值为:",bd1 info4="被动值增加1点,目前的被动值为:",self.bd
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
else: else:
...@@ -272,13 +301,13 @@ class Player(object): ...@@ -272,13 +301,13 @@ class Player(object):
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
exit() exit()
p_tili=p_tili+2 tili=tili+2
if p_tili>p_max_tili: if tili>max_tili:
p_tili=p_max_tili tili=max_tili
print("出招后,体力回复2点,目前的体力为:",p_tili) print("出招后,体力回复2点,目前的体力为:",tili)
def dacombat(self, enemy): #大招:金乌神箭 def dacombat(self, enemy,tili,max_tili): #大招:金乌神箭
p_tili=p_tili-10 self.tili=self.tili-10
info1 = self.name+"对"+enemy.name+"发起大招:金乌神箭," info1 = self.name+"对"+enemy.name+"发起大招:金乌神箭,"
info2 = "金乌神箭造成"+str(self.attack*2)+"点伤害," info2 = "金乌神箭造成"+str(self.attack*2)+"点伤害,"
enemy.hp=enemy.hp-(self.attack*2) enemy.hp=enemy.hp-(self.attack*2)
...@@ -291,13 +320,13 @@ class Player(object): ...@@ -291,13 +320,13 @@ class Player(object):
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
exit() exit()
p_tili=p_tili+2 self.tili=self.tili+2
if p_tili>p_max_tili: if self.tili>self.max_tili:
p_tili=p_max_tili self.tili=self.max_tili
print("出招后,体力回复2点,目前的体力为:",p_tili) print("出招后,体力回复2点,目前的体力为:",self.tili)
def zhongcombat(self, enemy): #中招:天降巨箭 def zhongcombat(self, enemy,tili,max_tili): #中招:天降巨箭
p_tili=p_tili-7 self.tili=self.tili-7
info1 = self.name+"对"+enemy.name+"发起中招:天降巨箭," info1 = self.name+"对"+enemy.name+"发起中招:天降巨箭,"
info2 = "天降巨箭造成"+str(self.attack+30)+"点伤害," info2 = "天降巨箭造成"+str(self.attack+30)+"点伤害,"
enemy.hp=enemy.hp-(self.attack*2) enemy.hp=enemy.hp-(self.attack*2)
...@@ -310,16 +339,16 @@ class Player(object): ...@@ -310,16 +339,16 @@ class Player(object):
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
exit() exit()
p_tili=p_tili+2 self.tili=self.tili+2
if p_tili>p_max_tili: if self.tili>self.max_tili:
p_tili=p_max_tili self.tili=self.max_tili
print("出招后,体力回复2点,目前的体力为:",p_tili) print("出招后,体力回复2点,目前的体力为:",self.tili)
def xiaocombat(self, enemy): #小招:连射 def xiaocombat(self, enemy,tili,max_tili): #小招:连射
ls=random.randint(1,5) ls=random.randint(1,5)
ls5=ls*5 ls5=ls*5
p_tili=p_tili-4 self.tili=self.tili-4
info1 = self.name+"对"+enemy.name+"发起小招:连射," info1 = self.name+"对"+enemy.name+"发起小招:连射,"
info2 = "连射",ls,"箭,造成"+str(self.attack+ls5)+"点伤害," info2 = "连射",ls,"箭,造成"+str(self.attack+ls5)+"点伤害,"
if ls==1: if ls==1:
...@@ -377,15 +406,18 @@ class Player(object): ...@@ -377,15 +406,18 @@ class Player(object):
info = info1+info2+info3 info = info1+info2+info3
print(info) print(info)
exit() exit()
p_tili=p_tili+2 self.tili=self.tili+2
if p_tili>p_max_tili: if self.tili>self.max_tili:
p_tili=p_max_tili self.tili=self.max_tili
print("出招后,体力回复2点,目前的体力为:",p_tili) print("出招后,体力回复2点,目前的体力为:",self.tili)
yase = Hero("坦克","垭瑟") h_tili=5
houyi = Player("射手", "后羿") p_tili=5
h_max_tili=10
p_max_tili=10
yase = Hero("坦克","垭瑟",h_tili,h_max_tili)
houyi = Player("射手","后羿",p_tili,p_max_tili)
print(30*"-") print(30*"-")
print(" 战斗开始") print(" 战斗开始")
while True: while True:
...@@ -404,15 +436,34 @@ while True: ...@@ -404,15 +436,34 @@ while True:
print("游戏结束") print("游戏结束")
break break
elif choice=="a": elif choice=="a":
houyi.cure() houyi.cure(p_tili,p_max_tili)
p_tili-=3
p_tili+=2
if p_tili>p_max_tili:
p_tili=p_max_tili
elif choice=="0": elif choice=="0":
houyi.combat(yase) houyi.combat(yase,p_tili,p_max_tili)
p_tili+=2
if p_tili>p_max_tili:
p_tili=p_max_tili
elif choice=="1": elif choice=="1":
houyi.xiaocombat(yase) houyi.xiaocombat(yase,p_tili,p_max_tili)
p_tili-=4
p_tili+=2
if p_tili>p_max_tili:
p_tili=p_max_tili
elif choice=="2": elif choice=="2":
houyi.zhongcombat(yase) houyi.zhongcombat(yase,p_tili,p_max_tili)
p_tili-=7
p_tili+=2
if p_tili>p_max_tili:
p_tili=p_max_tili
elif choice=="3": elif choice=="3":
houyi.dacombat(yase) houyi.dacombat(yase,p_tili,p_max_tili)
p_tili-=10
p_tili+=2
if p_tili>p_max_tili:
p_tili=p_max_tili
else: else:
print("指令无效") print("指令无效")
continue continue
...@@ -427,13 +478,28 @@ while True: ...@@ -427,13 +478,28 @@ while True:
else: else:
mun=random.randint(1,5) mun=random.randint(1,5)
if mun==1: if mun==1:
yase.combat(houyi) yase.combat(houyi,h_tili,h_max_tili)
h_tili+=2
if h_tili>h_max_tili:
h_tili=h_max_tili
elif mun==2: elif mun==2:
yase.cure() yase.cure(h_tili,h_max_tili)
h_tili-=3
h_tili+=2
if h_tili>h_max_tili:
h_tili=h_max_tili
elif mun==3: elif mun==3:
yase.xiaocombat(houyi) yase.xiaocombat(houyi,h_tili,h_max_tili)
h_tili-=4
h_tili+=2
if h_tili>h_max_tili:
h_tili=h_max_tili
elif mun==4: elif mun==4:
yase.zhongcombat(houyi) yase.zhongcombat(houyi,h_tili,h_max_tili)
h_tili-=7
h_tili+=2
if h_tili>h_max_tili:
h_tili=h_max_tili
if sdfy==1: if sdfy==1:
continue continue
elif sdfy==2: elif sdfy==2:
...@@ -441,4 +507,8 @@ while True: ...@@ -441,4 +507,8 @@ while True:
else: else:
continue continue
else: else:
yase.dacombat(houyi) yase.dacombat(houyi,h_tili,h_max_tili)
h_tili-=10
h_tili+=2
if h_tili>h_max_tili:
h_tili=h_max_tili
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment