从零开始学Python07作业源码:虚拟人生(仅供参考)

  • bin目录:
Simulated_life_start.py
 1 #!usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # auther:Mr.chen
 4 # 描述:
 5 
 6 
 7 import sys
 8 sys.path.append('..')
 9 from src import users_business
10 
11 
12 users_business.user_Main()
  • lib目录:
Small_monster_model.py

 1 #!usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # auther:Mr.chen
 4 # 描述:教师模型类
 5 
 6 import random,time,os,sys
 7 sys.path.append('..')
 8 from lib import common
 9 DIR = os.path.dirname(__file__)
10 DIR = DIR.replace('src', 'db/')
11 DICT = common.log_info_read(DIR + 'config_conf')
12 
13 class small_monster_Model:
14     '''
15     小怪物模型类
16     '''
17     def __init__(self,name,hurt):
18         self.Name = name                    # 怪物名
19         self.Hurt = hurt                    # 破坏力
20         self.Drop = ['大还丹','小还丹']       # 掉宝
21 
22 
23     def __str__(self):
24         return self.Name
Lock_demon_tower_model.py
 1 #!usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # auther:Mr.chen
 4 # 描述:
 5 
 6 import random,time,sys,os
 7 sys.path.append('..')
 8 from lib import common
 9 
10 
11 
12 
13 class lock_demon_tower_Model:
14     '''
15     锁妖塔模型类
16     '''
17 
18 
19 
20     def __init__(self,lname,difficulty,mlist_obj):
21         self.Lname = lname                #塔名
22         self.Difficulty = difficulty      #难度(小怪攻击力倍增)
23         self.Mlist_obj = mlist_obj        #小怪列表
24 
25 
26     def __str__(self):
27         return self.Lname
Players_model.py
  1 #!usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 # auther:Mr.chen
  4 # 描述:
  5 import random,time,os,sys
  6 sys.path.append('..')
  7 import common
  8 
  9 DIR = os.path.dirname(__file__)
 10 DIR = DIR.replace('src', 'db/')
 11 DICT = common.log_info_read(DIR + 'config_conf')
 12 
 13 
 14 class players_Model:
 15     '''
 16     玩家模型类
 17     '''
 18 
 19 
 20     def __init__(self,name,age,nationality,specialty,gamemode,tlist_obj):
 21         self.Name = name                        # 姓名
 22         self.Age = age                          # 年龄
 23         self.Nationality = nationality          # 国籍
 24         self.Specialty = specialty              # 特长
 25         self.Strength = 1000                    # 体力
 26         self.GameMode = gamemode                # 游戏模式
 27         self.Tlist_obj = tlist_obj              # 锁妖塔层关数列表
 28         self.Force = random.randrange(40, 60)   # 随机武力
 29         self.IQ= random.randrange(40,60)        # 随机智力
 30         self.Charm= random.randrange(40,60)     # 随机魅力
 31         self.Item = {'大还丹':0,'小还丹':0}       # 背包栏
 32         self.schedule = {}
 33         self.num = {}
 34         for obj in self.Tlist_obj:
 35             self.schedule[obj] = 0    #锁妖塔每层进度率
 36             self.num[obj] = 0         #闯塔次数
 37 
 38 
 39 
 40     def Begins(self,tobj):      #闯塔
 41         time.sleep(1)
 42         print("{0}慢慢的走了过去,用尽力量推开了{1}的大门,第{2}次闯塔开始!").format(self.Name,tobj,str(self.num[tobj]+1))
 43         re = self.success_Radio()
 44         if re != True:
 45             self.Battle(tobj)
 46         else:
 47             time.sleep(1)
 48             print ("很幸运,这次没遇到敌人!")
 49         self.schedule[tobj] += 10
 50         self.num[tobj] += 1
 51         time.sleep(1)
 52         print ("{0}结束了本次创塔,{1}的进度率变为{2}%,".format(self.Name, tobj, self.schedule[tobj]))
 53         if self.schedule[tobj] == 100:
 54             return False
 55         else:
 56             return True
 57 
 58 
 59 
 60 
 61     def Battle(self,tobj):          #战斗
 62         num = random.randrange(1,len(tobj.Mlist_obj))
 63         bum = random.randrange(1,1000)
 64         if bum > self.Charm * 10 :      #暴击判定
 65             hurt = (int(tobj.Mlist_obj[num - 1].Hurt) - (self.Force / 20)) * int(tobj.Difficulty) * 2
 66             self.Strength = self.Strength - hurt
 67             time.sleep(1)
 68             print ("{0}对你发起了毁灭性攻击(暴击),造成了{1}体力的伤害,你还剩余{2}体力".format(tobj.Mlist_obj[num - 1].Name, hurt, self.Strength))
 69         else:
 70             hurt = (int(tobj.Mlist_obj[num - 1].Hurt) - (self.Force / 20)) * int(tobj.Difficulty)
 71             self.Strength = self.Strength - hurt
 72             time.sleep(1)
 73             print ("{0}对你发起了打击,造成了{1}体力的伤害,你还剩余{2}体力".format(tobj.Mlist_obj[num - 1].Name, hurt, self.Strength))
 74         num = random.randrange(1,1000)
 75         if num >= 800:
 76             print ("费尽艰辛,你终于打败了怪物,从一堆渣子中你发现了大还丹!!")
 77             self.Item['大还丹'] +=1
 78         elif num >500 and num <800:
 79             print ("费尽艰辛,你终于打败了怪物,从一堆渣子中你发现了小还丹!!")
 80             self.Item['小还丹'] += 1
 81         else:
 82             print ("费劲艰辛打败怪物你的,仍旧一无所获。。。")
 83 
 84 
 85     def success_Radio(self):    #遇敌判定
 86         num = random.randrange(1, 1100)
 87         if num <= self.IQ * 10:
 88             return True
 89         else:
 90             a = random.randrange(1,5)
 91             # print (type(a))
 92             players_Model.event(str(a))
 93             return False
 94 
 95 
 96     @staticmethod
 97     def event(num):     #战斗事件
 98         dict = {'1':'你不小心猜了一坨屎,没想到当中居然有个怪物,突然向你袭来','2':'你看到一幅画,画里的人正是灵儿,突然它看了过来...',
 99                 '3':'一个怪物坐在一个独木桥中间,没办法你只能向它杀了过去','4':'一个胡同黑乎乎的,正当你想该往哪走的时候,有个东西摸了你的背后...',
100                 '5':'你静悄悄的缓步绕路,意图躲开怪物,但是它的同伴却发现了你....'}
101         time.sleep(1)
102         print (dict[num])

common.py

  1 #!usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 # auther:Mr.chen
  4 # 描述:
  5 
  6 #!/usr/bin/python
  7 # -*- coding: utf-8 -*-
  8 # 公共方法层
  9 
 10 import os,time,random,pickle
 11 
 12 DIR = os.path.dirname(__file__)
 13 DIR = DIR.replace('lib','db/')
 14 
 15 
 16 TAG = True      #循环控制标志
 17 
 18 
 19 def Exit():
 20     '''
 21     系统退出
 22     :return:None
 23     '''
 24     print ('程序退出!')
 25     exit()
 26 
 27 
 28 def MD5(password):
 29     '''
 30     加密函数
 31     :param firstsite: 密码字符串
 32     :return: 加密字符串
 33     '''
 34     import hashlib
 35     return hashlib.md5(password).hexdigest()
 36 
 37 
 38 def Verification_input():
 39     '''
 40     登录验证码校验
 41     :return: True
 42     '''
 43     while TAG:
 44         re = Verification_Code()
 45         code = raw_input('请输入括号里的验证码,不区分大小写({0}):'.format(re))
 46         if code.strip().lower() != re.lower():
 47             print('您输入的验证码有误,请重新输入!')
 48         else:
 49             return True
 50 
 51 
 52 def Verification_Code():
 53     '''
 54     生成随机的6位验证码:大小写字母数字的组合
 55     :return: 验证码
 56     '''
 57     code = ''
 58     b = random.randrange(0, 5)
 59     c = random.randrange(0, 5)
 60     for i in range(6):
 61         if i == b:
 62             a = random.randrange(1, 9)
 63             code = code + str(a)
 64         else:
 65             a = random.randrange(65, 90)
 66             if i == c:
 67                 code = code + chr(a).lower()
 68             else:
 69                 code = code + chr(a)
 70     return code
 71 
 72 
 73 
 74 
 75 
 76 def log_info_read(dir):
 77     '''
 78     配置文件全部读取
 79     :param user:用户名
 80     :return:dict字典
 81             如果无文件返回False
 82     '''
 83     if os.path.exists(dir):
 84         with open(dir,'r') as f:
 85             dict = pickle.load(f)
 86             return dict
 87     else:
 88         return False
 89 
 90 
 91 
 92 
 93 def log_info_write(dir,dict):
 94     '''
 95     配置文件全部写入
 96     :param user:用户名
 97     :param dict: 日志字典
 98     :return: True or False
 99     '''
100     #if os.path.exists(user+'_log'):
101     #print (DIR+user+'_log')
102     with open(dir,'w') as f:
103         pickle.dump(dict,f)
104         return True

 

 
  • src目录:

users_business.py

  1 #!usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 # auther:Mr.chen
  4 # 描述:
  5 
  6 LOGIN = []
  7 TAG = True
  8 import os,sys
  9 sys.path.append('..')
 10 from lib import common
 11 from lib.Players_model import players_Model
 12 import Story_start
 13 
 14 DIR = os.path.dirname(__file__)
 15 DIR = DIR.replace('src','db/')
 16 
 17 
 18 
 19 def user_Login():
 20     num = 0
 21     List = []
 22     dict = common.log_info_read(DIR + 'config_conf')
 23     if dict == False:
 24         print ("请让管理员先创建怪物及锁妖塔模型后再来!")
 25         return
 26     if len(dict['players']) == 0:
 27         print ("请注册角色以后再来!")
 28         return
 29     while TAG:
 30         text = """
 31                 你一共创建了{0}个角色如下:
 32         """.format(str(len(dict['players'])))
 33         print (text)
 34         for P in dict['players']:
 35             print ("{0},姓名:{1},年龄:{2},国籍:{3},特长:{4},体力:{5},武力:{6},智力:{7},魅力:{8},游戏模式:{9}"
 36                    .format(str(num+1),P.Name,P.Age,P.Nationality,P.Specialty,P.Strength,P.Force,P.IQ,P.Charm,P.GameMode))
 37             num += 1
 38             List.append(str(num))
 39         choose = raw_input("请输入索引选择登陆角色(单选):")
 40         if choose in List:
 41             LOGIN.insert(0,dict['players'][int(choose)-1])
 42             print ("{0}角色登陆成功!".format(LOGIN[0].Name))
 43             return
 44         else:
 45             print ("您的选择有误,请重新选择!")
 46             num = 0
 47 
 48 
 49 
 50 
 51 
 52 
 53 
 54 def login_Check():
 55     dict = common.log_info_read(DIR + 'config_conf')
 56 
 57     name = raw_input("请输入你的姓名:")
 58     age = raw_input("请输入你的年龄:")
 59     nationality = raw_input("请输入你的国籍:")
 60 
 61     text = """
 62                   游戏可选特长如下:
 63                 1,无双(初始武力+10,武力越高,敌人的伤害越低)
 64                 2,奇才 (初始智力+10,智力越高遇敌率越低)
 65                 3,妖异 (初始魅力+10,魅力越高,敌人暴击率越低)
 66                 4,守财 (初始体力+300,体力越高越耐打)
 67     """
 68     while TAG:
 69         print(text)
 70         specialty = raw_input("请输入索引选择你的特长(单选):")
 71         Dic = {'1':'无双','2':'奇才','3':'妖异','4':'守财'}
 72         if specialty in Dic.keys():
 73             specialty = Dic[specialty]
 74             break
 75         else:
 76             print ("你的输入有误,请重新输入!")
 77     while TAG:
 78         decide = raw_input("是否开启作弊模式?(y/n)")
 79         if decide == 'y':
 80             gamemode = '作弊模式'
 81             break
 82         elif decide == 'n':
 83             gamemode = '正常模式'
 84             break
 85         else:
 86             print ("你的输入有误!")
 87     text = """
 88             你的注册信息如下:
 89               姓名:{0}
 90               年龄:{1}
 91               国籍:{2}
 92               特长:{3}
 93               模式:{4}
 94     """.format(name,age,nationality,specialty,gamemode)
 95     while TAG:
 96         print (text)
 97         decide = raw_input("是否确认(y/n):")
 98         if decide == 'y':
 99             P = players_Model(name,age,nationality,specialty,gamemode,dict['towers'])
100             # Dict = {'无双': 'Force', '奇才': 'IQ', '妖异': 'Charm'}
101             if specialty == '无双':
102                 P.Force += 10
103             elif specialty == '奇才':
104                 P.IQ += 10
105             elif specialty == '妖异':
106                 P.Charm += 10
107             else:
108                 P.Strength += 300
109             if gamemode == '作弊模式':
110                 P.Force = 100
111                 P.IQ = 100
112                 P.Charm = 100
113                 P.Strength = 100000
114 
115             dict['players'].append(P)
116             common.log_info_write(DIR + 'config_conf', dict)
117             print ('信息注册成功')
118             return
119         elif decide == 'n':
120             return
121         else:
122             print ('你的输入有误!')
123 
124 
125 
126 
127 
128 
129 
130 def user_Main():
131 
132     text = """
133               欢迎体验模拟的人生
134                 1,角色选择
135                 2,角色注册
136                 3,游戏开始
137                 4,游戏退出
138     """
139     while TAG:
140         print (text)
141         dict = {'1':user_Login,'2':login_Check,'3':Story_start.Pre_chapter,'4':common.Exit}
142         choose = raw_input("请输入你的选择:")
143         if choose in dict.keys():
144             if choose == '3' and LOGIN != []:
145                 dict[choose](LOGIN[0])
146             elif choose == '3':
147                 print ("请登陆角色后再来!")
148             else:
149                 dict[choose]()
150         else:
151             print ("你的输入有误!")
152 
153 if __name__ == "__main__":
154     user_Main()

admin_business.py

  1 #!usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 # auther:Mr.chen
  4 # 描述:
  5 
  6 import os,sys
  7 sys.path.append('..')
  8 from lib.Small_monster_model import small_monster_Model
  9 from lib.Lock_demon_tower_model import lock_demon_tower_Model
 10 from lib import common
 11 
 12 DIR = os.path.dirname(__file__)
 13 DIR = DIR.replace('src','db/')
 14 
 15 TAG = True
 16 
 17 def create_monsters_model():
 18     """
 19     创建小怪模型
 20     :return: None
 21     """
 22     while TAG:
 23         name = raw_input("请输入怪物的姓名:")
 24         hurt = raw_input("请输入怪物的破坏力:")
 25         text = """
 26             怪物信息如下:
 27              姓名:  {0}
 28              破坏力:{1}
 29         """.format(name,hurt)
 30         print (text)
 31         decide = raw_input("是否确认(y/n):")
 32         if decide == 'y':
 33             M = small_monster_Model(name,hurt)
 34             dict = common.log_info_read(DIR+'config_conf')
 35             if dict != False:
 36                 dict['monsters'].append(M)
 37                 common.log_info_write(DIR + 'config_conf', dict)
 38                 print ("怪物信息保存成功!")
 39                 return
 40             else:
 41                 dict = {
 42                     'monsters':[M],
 43                     'towers':[],
 44                     'players':[]
 45                 }
 46                 common.log_info_write(DIR+'config_conf',dict)
 47                 print ("怪物信息保存成功!")
 48                 return
 49         elif decide == 'n':
 50             break
 51         else:
 52             print ("您的输入有误!")
 53 
 54 
 55 
 56 def create_Tower_model():
 57     """
 58     创建锁妖塔模型
 59     :return: None
 60     """
 61 
 62     dict = common.log_info_read(DIR + 'config_conf')
 63     if dict == False:
 64         print ("请先创建怪物模型后再来!")
 65         return
 66     name = raw_input("请输入锁妖塔的名称:")
 67     difficulty = raw_input("请输入本层的难度(倍增小怪攻击力):")
 68     T= lock_demon_tower_Model(name,difficulty,dict['monsters'])
 69     while TAG:
 70         text = """
 71                     课程的信息如下:
 72                      塔名:  {0}
 73                      难度:  {1}
 74             """.format(name,difficulty)
 75         print (text)
 76         decide = raw_input("是否确认(y/n):")
 77         if decide == 'y':
 78             dict['towers'].append(T)
 79             common.log_info_write(DIR + 'config_conf', dict)
 80             return
 81         elif decide == 'n':
 82             return
 83         else:
 84             print ("您的输入有误!")
 85 
 86 
 87 
 88 
 89 
 90 
 91 
 92 
 93 
 94 def model_Config():
 95     """
 96     查看已经创建的模型
 97     :return: None
 98     """
 99     num = 0
100     Num = 0
101     dict = common.log_info_read(DIR + 'config_conf')
102     if dict == False:
103         print ("请先创建怪物模型后再来!")
104         return
105     print ("已经创建的怪物模型,如下:".format(str(len(dict['monsters']))))
106     for M in dict['monsters']:
107         print ("{0}:怪物名:{1},破坏力:{2},掉宝:{3}".format(str(num + 1), M.Name, M.Hurt, M.Drop))
108         num += 1
109     print ("已经创建的塔模型,如下:".format(str(len(dict['towers']))))
110     for P in dict['towers']:
111         print ("{0}:塔名:{1},难度:{2},怪物列表:{3}".format(str(Num + 1), P.Lname, P.Difficulty, P.Mlist_obj))
112         Num += 1
113 
114 
115 
116 
117 def admin_Main(log = None):
118     """
119     管理员管理界面
120     :param log: 用户登录标志
121     :return: None
122     """
123     while TAG:
124         text = """
125                     欢迎来到管理员界面        {0}登陆中
126                     1,创建怪物模组
127                     2,创建锁妖塔模组
128                     3,查看模组配置
129                     4,系统退出
130         """.format(log)
131         print (text)
132         while TAG:
133             choose = raw_input('请输入你的选择:')
134             if choose == '1':
135                 create_monsters_model()
136                 break
137             elif choose == '2':
138                 create_Tower_model()
139                 break
140             elif choose == '3':
141                 model_Config()
142                 break
143             elif choose == '4':
144                 common.Exit()
145             else:
146                 print ('您的输入有误!')
147 
148 if __name__ == "__main__":
149     admin_Main('admin')

Story_start.py

  1 #!usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 # auther:Mr.chen
  4 # 描述:
  5 
  6 import time,os,sys
  7 sys.path.append('..')
  8 from lib import common
  9 # from lib.Players_model import players_Model
 10 DIR = os.path.dirname(__file__)
 11 DIR = DIR.replace('src','db/')
 12 TAG = True
 13 
 14 
 15 def Pre_chapter(user):
 16     time.sleep(2)
 17     title = """
 18                         * * * * * * * * * * * * * * * * * * * * * * *预章:传说* * * * * * * * * * * * * * * * * * * * * * *
 19     """
 20     print (title)
 21     time.sleep(5)
 22     text = """
 23                     相传很久以前,于古国疆域,有一奇人姓夸名父.
 24                     以大力闻于世间,以才智惊于圣贤,以风韵传于万载..
 25                     忽一日,慕之者至.询问之,其曰...
 26                     吾父乃真之才,生于凡中.无师而达天地...
 27                     终其一生教化万民,此乃吾真之所持..
 28                     父之事迹.且听我慢慢道来...
 29 
 30     """
 31     for i in text.decode('utf-8'):
 32         if i != ' ':
 33             time.sleep(0.5)
 34             print i.encode('utf-8'),
 35         else:
 36             print i.encode('utf-8'),
 37     The_first_chapter(user)
 38 
 39 
 40 def The_first_chapter(user):
 41 
 42     # dict = common.log_info_read(DIR + 'config_conf')
 43     # for S in dict['students']:
 44     #     if S.Name == user.Name:
 45     time.sleep(2)
 46     introduce = """
 47                               登场人物介绍
 48 
 49                               姓名:{0}
 50                               年龄:{1}
 51                               国籍:{2}
 52                               特长:{3}
 53                               体力:{4}
 54                               武力:{5}
 55                               智力:{6}
 56                               魅力:{7}
 57                               秘籍:无
 58 
 59                           点评:屌丝,唯撩妹甚
 60 
 61                               姓名:灵儿
 62                               年龄:22
 63                               国籍:china
 64                               特长:
 65                               体力:1000
 66                               武力:70
 67                               智力:70
 68                               魅力:100
 69                               秘籍:游戏保护,万法不侵
 70 
 71                           点评:白富美
 72         """.format(user.Name,user.Age,user.Nationality,user.Specialty,user.Strength,user.Force,user.IQ,user.Charm)
 73     for i in introduce.decode('utf-8'):
 74         if i != ' ':
 75             time.sleep(0.2)
 76             print i.encode('utf-8'),
 77         else:
 78             print i.encode('utf-8'),
 79     time.sleep(2)
 80     title = """
 81                             * * * * * * * * * * * * * * * * * * * * * * *第一章:缘启* * * * * * * * * * * * * * * * * * * * * * *
 82             """
 83     print (title)
 84     time.sleep(5)
 85     text = """
 86                     我的父亲叫做{0},本是一介草民,少时机缘之下,
 87                     救助了一个跳河自杀之人,本也并无所求,只因
 88                     我父那时在河中捕鱼,闲河中波澜太盛,吓跑鱼儿,
 89                     故,救之,以安抚鱼心。谁想此人竟是一小门派
 90                     掌教之子,因修炼走火,盲目间跌落河中。恰逢我父
 91                     出海,机缘所致,掌教有感我父恩德,故收其为徒,
 92                     传功授法,指引修行。说来也怪,我父不论武力{1},
 93                     智力{1}魅力{2}尽数低于常人,但唯独撩妹能力
 94                     极其出众,故派中最小师妹灵儿常伴左右,个中滋味
 95                     不足为外人道也。
 96 
 97 
 98         """.format(user.Name,user.Force,user.IQ,user.Charm)
 99     for i in text.decode('utf-8'):
100         if i != ' ':
101             time.sleep(0.5)
102             print i.encode('utf-8'),
103         else:
104             print i.encode('utf-8'),
105     The_second_chapter(user)
106 
107 
108 def The_second_chapter(user):
109     time.sleep(2)
110     introduce = """
111                                   登场人物介绍
112 
113                                   姓名:高富帅
114                                   年龄:34
115                                   国籍:china
116                                   特长:有钱有势
117                                   体力:1000
118                                   武力:70
119                                   智力:70
120                                   魅力:70
121                                   秘籍:无
122 
123                                 点评:如其名
124 
125 
126             """
127     for i in introduce.decode('utf-8'):
128         if i != ' ':
129             time.sleep(0.2)
130             print i.encode('utf-8'),
131         else:
132             print i.encode('utf-8'),
133     time.sleep(2)
134     title = """
135                         * * * * * * * * * * * * * * * * * * * * * * *第二章:幻灭* * * * * * * * * * * * * * * * * * * * * * *
136         """
137     print (title)
138     time.sleep(5)
139     text = """
140                     我父和灵儿就这样朝夕相处,日久生情,只待谈婚论嫁之时。
141                     但,世事难料。一日,掌门大寿,宴请四方,祝寿者繁多。
142                     有一人姓高名富帅,乃当朝一品大员之子,见灵儿貌美,
143                     意欲图之。在其下手一刻,幸被我父所阻,于是心生恨意,
144                     命其下人,禀报大员,以圣上赐婚为由,向掌门施压。怎料,
145                     掌门欲息事宁人,遂命灵儿随高富帅回京,奉旨完婚。师命
146                     难违,灵儿纵千般不愿,亦感无可奈何。临行前,挥泪别过,
147                     劝我父放下仇恨,勿思勿念。我父伤心之余,亦感自身渺小。
148                     暗发宏愿,以期报仇雪恨,救灵儿于水火之间。
149         """
150     for i in text.decode('utf-8'):
151         if i != ' ':
152             time.sleep(0.5)
153             print i.encode('utf-8'),
154         else:
155             print i.encode('utf-8'),
156     The_third_chapter(user)
157 
158 def The_third_chapter(user):
159     time.sleep(2)
160     title = """
161                         * * * * * * * * * * * * * * * * * * * * * * *第三章:暗涛* * * * * * * * * * * * * * * * * * * * * * *
162         """
163     print (title)
164     time.sleep(5)
165     text = """
166                     灵儿事毕,我父再无心静修,辞别掌教,下山入世。
167                     得一高人指点,拜于一隐门之中,勤学苦练,终得
168                     真传。我父正欲出山报仇,被隐门上士所阻,言道
169                     京城宦官家有一大内高手田伯光,武力高达90有余,
170                     欲胜之需闯本门的锁妖塔拿一绝世宝物(双倍暴击率)
171                     方可成行。
172         """
173     for i in text.decode('utf-8'):
174         if i != ' ':
175             time.sleep(0.5)
176             print i.encode('utf-8'),
177         else:
178             print i.encode('utf-8'),
179     time.sleep(2)
180     while TAG:
181         text = """
182                     剧情分支选择如下:
183                         1,听劝
184                         2,不听劝
185 
186         """
187         print (text)
188         choose = raw_input("请输入索引进行选择")
189         if choose == '1':
190             Lock_demon_tower(user)
191         elif choose == '2':
192             Fail_ending_one()
193         else:
194             print ("你的选择有误!")
195 
196 
197 
198 def Lock_demon_tower(user):
199     List = []
200     dict = common.log_info_read(DIR + 'config_conf')
201     for pobj in dict['players']:
202         if pobj.Name == user.Name:
203             P = pobj
204 
205     time.sleep(2)
206     title = """
207                             * * * * * * * * * * * * * * * * * * * * * * *第四章:勇闯锁妖塔* * * * * * * * * * * * * * * * * * * * * * *
208             """
209     print (title)
210     time.sleep(5)
211     text = """
212                         反复思量,我父还是决定暂缓报仇,遵从隐士的看法,
213                         独自一人来到锁妖塔前,看者前方雄伟的高达{0}
214                         层的锁妖塔,暗下决心,要尽快完成闯塔拿到宝物.
215                         于是,我父来到了塔下的驿站里...
216             """.format(str(len(user.Tlist_obj)))
217     for i in text.decode('utf-8'):
218         if i != ' ':
219             time.sleep(0.5)
220             print i.encode('utf-8'),
221         else:
222             print i.encode('utf-8'),
223     while TAG:
224         test = """
225                   请问现在你想去哪?
226                     1,闯塔
227                     2,打开背包(吃药)          你还有{0}体力
228                     3,不闯了,直接去报仇
229         """.format(str(P.Strength))
230         print (test)
231         choose = raw_input("请输入索引进行选择:")
232         num = 0
233         bum = 0
234         if choose == '1':
235             for tobj in dict['towers']:
236                 if P.schedule[tobj] == 100:
237                     schedule = '已达成'
238                     bum += 1
239                 else:
240                     schedule = P.schedule[tobj]
241                 print ("{0},{1},难度系数:{2},进度率:{3}%,创塔次数:{4}次".format(str(num+1),tobj.Lname,tobj.Difficulty,str(schedule),str(P.num[tobj])))
242                 if bum == len(P.Tlist_obj):
243                     print ("{0},锁妖塔顶层,难度系统:0".format(str(num+2)))
244                 num += 1
245                 List.append(str(num))
246             decide = raw_input("请输入索引进行选择:")
247             if decide == str(len(P.Tlist_obj)+1) and bum == len(P.Tlist_obj):
248                 Lock_demon_tower_Top(user)
249             if decide in List:
250                 if P.schedule[dict['towers'][int(decide)-1]] < 100:
251                     for i in range(10):
252                         re = P.Begins(dict['towers'][int(decide)-1])
253                         if re == False:
254                             common.log_info_write(DIR + 'config_conf', dict)
255                             break
256                     else:
257                         common.log_info_write(DIR + 'config_conf', dict)
258                 else:
259                     print ("本层已经闯过了!")
260             else:
261                 print ("你的输入有误!")
262 
263 
264         elif choose == '2':
265             while TAG:
266                 text = """
267                         背囊物品如下:          你还有{0}体力
268                         1,大还丹:{1}个
269                         2,小还丹  {2}个
270                 """.format(str(P.Strength),str(P.Item['大还丹']),str(P.Item['大还丹']))
271                 print (text)
272                 choose = raw_input("请输入索引进行选择:")
273                 if choose == '1':
274                     if P.Item['大还丹'] > 0 :
275                         P.Item['大还丹'] -= 1
276                         P.Strength += 500
277                         common.log_info_write(DIR + 'config_conf', dict)
278                         break
279                     else:
280                         print ("大还丹个数为0")
281                         break
282                 elif choose == '2':
283                     if P.Item['小还丹'] > 0:
284                         P.Item['小还丹'] -= 1
285                         P.Strength += 200
286                         common.log_info_write(DIR + 'config_conf', dict)
287                         break
288                     else:
289                         print ("小还丹个数为0")
290                         break
291                 else:
292                     print ("你的输入有误!请重新输入!")
293 
294         elif choose == '3':
295             Fail_ending_one()
296         else:
297             print ("你的输入有误!")
298 
299 
300 def Lock_demon_tower_Top(user):
301     dict = common.log_info_read(DIR + 'config_conf')
302     for pobj in dict['players']:
303         if pobj.Name == user.Name:
304             P = pobj
305     time.sleep(2)
306     title = """
307                                 * * * * * * * * * * * * * * * * * * * * * * *第五章:锁妖塔顶* * * * * * * * * * * * * * * * * * * * * * *
308                 """
309     print (title)
310     time.sleep(5)
311     text = """
312                             克服磨难,吾父终至,锁妖塔顶。与前相比,此地奇静。
313                             地方不大,有水缸一口,两人高有余。好奇之下,
314                             侧身观之,怎料竟有活人居于缸内,遂上前,救出。
315                             原来此人就是灵儿。询问下,方知,那日毕,其心已死,
316                             趁高富帅不备,遂逃出,寻短见,幸被隐门上士所救,居
317                             此疗伤,恰逢我父闯塔,喜得相逢。至此,我父恍然,直呼,
318                             此宝胜万宝也(主角瞬间满怒体力翻倍)
319                 """
320     for i in text.decode('utf-8'):
321         if i != ' ':
322             time.sleep(0.5)
323             print i.encode('utf-8'),
324         else:
325             print i.encode('utf-8'),
326     P.Strength = P.Strength * 2
327     common.log_info_write(DIR + 'config_conf', dict)
328     Wu_Duo(user)
329 
330 
331 def Wu_Duo(user):
332 
333 
334     time.sleep(2)
335     title = """
336                             * * * * * * * * * * * * * * * * * * * * * * *终章:武夺* * * * * * * * * * * * * * * * * * * * * * *
337         """
338     print (title)
339     time.sleep(5)
340     text = """
341                         经过不懈的努力,战胜了诸多困苦(实在懒得编了),
342                         我们的主角终于和美女团结友爱的在一起生活,剧终
343 
344         """
345     for i in text.decode('utf-8'):
346         if i != ' ':
347             time.sleep(0.5)
348             print i.encode('utf-8'),
349         else:
350             print i.encode('utf-8'),
351     exit()
352 
353 
354 
355 def Fail_ending_one():
356 
357 
358 
359     time.sleep(2)
360     title = """
361                                 * * * * * * * * * * * * * * * * * * * * * * *终章:武夺* * * * * * * * * * * * * * * * * * * * * * *
362             """
363     print (title)
364     time.sleep(5)
365     text = """
366                             报仇心切,我父终是不肯听劝,遂一人趁夜逃出隐门,
367                             数日后,进京踩点,待万事俱备只欠东风之时,奈何
368                             大员祖宅大内高手,先知先觉,早已暗随我父三日有余,
369                             眼见我父正待出手,遂突袭之,我父重伤,感叹报仇无望,
370                             自此隐居山林,不问世事.....BAD END......
371 
372             """
373     for i in text.decode('utf-8'):
374         if i != ' ':
375             time.sleep(0.5)
376             print i.encode('utf-8'),
377         else:
378             print i.encode('utf-8'),
379     exit()

 

posted @ 2016-12-10 21:53  陈思齐  阅读(1327)  评论(2编辑  收藏  举报