# -*- coding: utf-8 -*
import time,os,random
#######数据系统的建立
class player:#玩家信息
def __init__(self,name,maxhp=100,ac=10,speed=1.0,money=0):
self.name=name
self.hp=maxhp
self.maxhp=maxhp
self.minac=int(ac*0.5)
self.maxac=int(ac*1.5)
self.speed=speed
self.money=money
self.exp=0
self.maxexp=100
self.rank=0
self.challenge=0
def rankup(self):#升级系统
self.maxhp+=10+self.rank
self.minac+=random.randint(2,8)
self.maxac+=random.randint(4,12)
self.hp=self.maxhp
self.speed+=0.1
self.exp-=self.maxexp
self.maxexp=int(self.maxexp*1.1)
self.rank+=1
def printa(self):#个人信息
print('【%s】' %self.name)
print('等级:%d(%d/%d)' %(self.rank,self.exp,self.maxexp))
print('生命值:%d/%d' %(self.hp,self.maxhp))
print('攻击力:%d-%d' %(self.minac,self.maxac))
print('速度:%.1f' %self.speed)
print('金钱:%d' %self.money)
print('敌人等级:%d' %self.challenge)
print()
def ac(self):#随机
return random.randint(self.minac,self.maxac)
def save(self):#保存
s=self.name+'\n'+str(self.rank)+'\n'+str(self.exp)+'\n'+str(self.maxexp)+'\n'+str(self.hp)+'\n'
s+=str(self.maxhp)+'\n'+str(self.minac)+'\n'+str(self.maxac)+'\n'+str(self.speed)+'\n'+str(self.money)+'\n'
s+=str(self.challenge)
with open('hero.save','w') as f:
f.write(s)
print('战士,你的数据保存成功!\n')
#######游戏主系统的建立
def LOADING():#加载函数
global hero
if os.path.exists('hero.save'):
try:
with open('hero.save','r') as f:
d=f.read().split('\n')
hero=player(d[0])
hero.rank=int(d[1])
hero.exp=int(d[2])
hero.maxexp=int(d[3])
hero.hp=int(d[4])
hero.maxhp=int(d[5])
hero.minac=int(d[6])
hero.maxac=int(d[7])
hero.speed=float(d[8])
hero.money=int(d[9])
hero.challenge=int(d[10])
print('欢迎回来,我的战士。\n')
print()
return 0
except Exception as e:
print('战士,你的存档读取出错:',e)
print()
hero=player(input('战士,我该如何称呼你?\n'))
def EXP(x):#经验获取
if x<5:
return -0.198*x+1
if x>=5:
return 0.01
def FIGHT(A,B):#战斗事件
global times
times+=1
ac=B.ac()
A.hp-=ac
print('<%d>\n【%s】攻击【%s】!\n【%s】受到 %d 点伤害!\n【%s】剩余生命值:%d\n' %(times,B.name,A.name,A.name,ac,A.name,A.hp))
if A.hp<=0:
return 1
else:
return 0
def BATTLE(who):#进入战斗状态
global times
try:
s2=int(input('我的战士,你想挑战多少等级的怪物?\n'))
except:
s2=1
print()
if s2>0:
os.system('cls')
print('挑战【%d】级怪物\n' %s2)
if who.challenge0 and who.hp>0:
if monster.speed>who.speed:
if FIGHT(who,monster):
break
time.sleep(0.5)
if FIGHT(monster,who):
break
time.sleep(0.5)
else:
if FIGHT(monster,who):
break
time.sleep(0.5)
if FIGHT(who,monster):
break
time.sleep(0.5)
if who.hp>0:
if monster.money>0:
print('你成功地击杀了怪物,经验和金钱增加了!\n')
else:
print('你成功地击杀了怪物,经验增加了!\n')
who.exp+=exp
ranktmp=0
while who.exp>=who.maxexp:
who.rankup()
ranktmp+=1
if ranktmp==1:
print('【%s】的力量发生了变化!\n' %who.name)
elif ranktmp>1 and ranktmp<100:
print('【%s】的力量得到了强大的提升!\n' %who.name)
elif ranktmp>=100:
print('【%s】一定是我们的救世主!\n' %who.name)
who.money+=monster.money
else:
print('很遗憾我的战士,你被怪物杀死了,安息吧,游戏到此结束。\n')
print()
return True
else:
print('我的战士,这里找不到更弱的怪物了。\n')
print()
return False
def CURE(who):#治疗事件
os.system('cls')
if who.hp0:
if who.money>=who.maxhp-who.hp:
print('在圣光的照耀和保佑下,你恢复如初!\n')
who.money-=who.maxhp-who.hp
who.hp=who.maxhp
else:
print('由于你的金钱不够,牧师只治疗了你的部分伤势。\n')
who.hp+=who.money
who.money=0
else:
print('我的战士,你的心灵得到了治愈,愿上帝保佑你,阿门。\n')
print()
#######加载
LOADING()
gameover=False
#######游戏 *** 作界面
while gameover==False:
print('A.寻找怪物\nB.寻求治疗\nC.保存存档\nD.查看属性')
print()
s=input('我的战士,你接下来有何打算?\n(输入序号执行对应 *** 作)\n')
print()
#指令的判断
if s=='A':
gameover=BATTLE(hero)
elif s=='B':
CURE(hero)
elif s=='C':
os.system('cls')
hero.save()
elif s=='D':
os.system('cls')
hero.printa()
else:
print("我的战士,我听不清你的要求,再说一次吧,你接下来有何打算?\n")
s
input('---- YOU DIED ----')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)