• 从零开始学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()
    北京IT职业教育培训中心,欢迎来校咨询。微信号:yinsendemogui(添加时请注明博客园)
  • 相关阅读:
    计算两个时间相差几个月
    批量生成二维码
    PHP实现二维数组(或多维数组)转换成一维数组
    任意二维数组转换成一维数组
    企业微信的使用与公众号以及其它几个应用的使用方式都是一致的
    判断字符类型
    insert一个表的数据到另外一个表
    同步a表的数据到 b表
    PHP Curl Accept-Encoding: gzip乱码问题解决
    spring boot入门程序
  • 原文地址:https://www.cnblogs.com/chensiqiqi/p/6165583.html
Copyright © 2020-2023  润新知