从零开始学Python07作业源码:虚拟人生(仅供参考)
- bin目录:
Simulated_life_start.py
#!usr/bin/env python
# -*- coding:utf-8 -*-
# auther:Mr.chen
# 描述: import sys
sys.path.append('..')
from src import users_business users_business.user_Main()
- lib目录:
Small_monster_model.py
#!usr/bin/env python
# -*- coding:utf-8 -*-
# auther:Mr.chen
# 描述:教师模型类 import random,time,os,sys
sys.path.append('..')
from lib import common
DIR = os.path.dirname(__file__)
DIR = DIR.replace('src', 'db/')
DICT = common.log_info_read(DIR + 'config_conf') class small_monster_Model:
'''
小怪物模型类
'''
def __init__(self,name,hurt):
self.Name = name # 怪物名
self.Hurt = hurt # 破坏力
self.Drop = ['大还丹','小还丹'] # 掉宝 def __str__(self):
return self.Name
Lock_demon_tower_model.py
#!usr/bin/env python
# -*- coding:utf-8 -*-
# auther:Mr.chen
# 描述: import random,time,sys,os
sys.path.append('..')
from lib import common class lock_demon_tower_Model:
'''
锁妖塔模型类
''' def __init__(self,lname,difficulty,mlist_obj):
self.Lname = lname #塔名
self.Difficulty = difficulty #难度(小怪攻击力倍增)
self.Mlist_obj = mlist_obj #小怪列表 def __str__(self):
return self.Lname
Players_model.py
#!usr/bin/env python
# -*- coding:utf-8 -*-
# auther:Mr.chen
# 描述:
import random,time,os,sys
sys.path.append('..')
import common DIR = os.path.dirname(__file__)
DIR = DIR.replace('src', 'db/')
DICT = common.log_info_read(DIR + 'config_conf') class players_Model:
'''
玩家模型类
''' def __init__(self,name,age,nationality,specialty,gamemode,tlist_obj):
self.Name = name # 姓名
self.Age = age # 年龄
self.Nationality = nationality # 国籍
self.Specialty = specialty # 特长
self.Strength = 1000 # 体力
self.GameMode = gamemode # 游戏模式
self.Tlist_obj = tlist_obj # 锁妖塔层关数列表
self.Force = random.randrange(40, 60) # 随机武力
self.IQ= random.randrange(40,60) # 随机智力
self.Charm= random.randrange(40,60) # 随机魅力
self.Item = {'大还丹':0,'小还丹':0} # 背包栏
self.schedule = {}
self.num = {}
for obj in self.Tlist_obj:
self.schedule[obj] = 0 #锁妖塔每层进度率
self.num[obj] = 0 #闯塔次数 def Begins(self,tobj): #闯塔
time.sleep(1)
print("{0}慢慢的走了过去,用尽力量推开了{1}的大门,第{2}次闯塔开始!").format(self.Name,tobj,str(self.num[tobj]+1))
re = self.success_Radio()
if re != True:
self.Battle(tobj)
else:
time.sleep(1)
print ("很幸运,这次没遇到敌人!")
self.schedule[tobj] += 10
self.num[tobj] += 1
time.sleep(1)
print ("{0}结束了本次创塔,{1}的进度率变为{2}%,".format(self.Name, tobj, self.schedule[tobj]))
if self.schedule[tobj] == 100:
return False
else:
return True def Battle(self,tobj): #战斗
num = random.randrange(1,len(tobj.Mlist_obj))
bum = random.randrange(1,1000)
if bum > self.Charm * 10 : #暴击判定
hurt = (int(tobj.Mlist_obj[num - 1].Hurt) - (self.Force / 20)) * int(tobj.Difficulty) * 2
self.Strength = self.Strength - hurt
time.sleep(1)
print ("{0}对你发起了毁灭性攻击(暴击),造成了{1}体力的伤害,你还剩余{2}体力".format(tobj.Mlist_obj[num - 1].Name, hurt, self.Strength))
else:
hurt = (int(tobj.Mlist_obj[num - 1].Hurt) - (self.Force / 20)) * int(tobj.Difficulty)
self.Strength = self.Strength - hurt
time.sleep(1)
print ("{0}对你发起了打击,造成了{1}体力的伤害,你还剩余{2}体力".format(tobj.Mlist_obj[num - 1].Name, hurt, self.Strength))
num = random.randrange(1,1000)
if num >= 800:
print ("费尽艰辛,你终于打败了怪物,从一堆渣子中你发现了大还丹!!")
self.Item['大还丹'] +=1
elif num >500 and num <800:
print ("费尽艰辛,你终于打败了怪物,从一堆渣子中你发现了小还丹!!")
self.Item['小还丹'] += 1
else:
print ("费劲艰辛打败怪物你的,仍旧一无所获。。。") def success_Radio(self): #遇敌判定
num = random.randrange(1, 1100)
if num <= self.IQ * 10:
return True
else:
a = random.randrange(1,5)
# print (type(a))
players_Model.event(str(a))
return False @staticmethod
def event(num): #战斗事件
dict = {'':'你不小心猜了一坨屎,没想到当中居然有个怪物,突然向你袭来','':'你看到一幅画,画里的人正是灵儿,突然它看了过来...',
'':'一个怪物坐在一个独木桥中间,没办法你只能向它杀了过去','':'一个胡同黑乎乎的,正当你想该往哪走的时候,有个东西摸了你的背后...',
'':'你静悄悄的缓步绕路,意图躲开怪物,但是它的同伴却发现了你....'}
time.sleep(1)
print (dict[num])
common.py
#!usr/bin/env python
# -*- coding:utf-8 -*-
# auther:Mr.chen
# 描述: #!/usr/bin/python
# -*- coding: utf-8 -*-
# 公共方法层 import os,time,random,pickle DIR = os.path.dirname(__file__)
DIR = DIR.replace('lib','db/') TAG = True #循环控制标志 def Exit():
'''
系统退出
:return:None
'''
print ('程序退出!')
exit() def MD5(password):
'''
加密函数
:param firstsite: 密码字符串
:return: 加密字符串
'''
import hashlib
return hashlib.md5(password).hexdigest() def Verification_input():
'''
登录验证码校验
:return: True
'''
while TAG:
re = Verification_Code()
code = raw_input('请输入括号里的验证码,不区分大小写({0}):'.format(re))
if code.strip().lower() != re.lower():
print('您输入的验证码有误,请重新输入!')
else:
return True def Verification_Code():
'''
生成随机的6位验证码:大小写字母数字的组合
:return: 验证码
'''
code = ''
b = random.randrange(0, 5)
c = random.randrange(0, 5)
for i in range(6):
if i == b:
a = random.randrange(1, 9)
code = code + str(a)
else:
a = random.randrange(65, 90)
if i == c:
code = code + chr(a).lower()
else:
code = code + chr(a)
return code def log_info_read(dir):
'''
配置文件全部读取
:param user:用户名
:return:dict字典
如果无文件返回False
'''
if os.path.exists(dir):
with open(dir,'r') as f:
dict = pickle.load(f)
return dict
else:
return False def log_info_write(dir,dict):
'''
配置文件全部写入
:param user:用户名
:param dict: 日志字典
:return: True or False
'''
#if os.path.exists(user+'_log'):
#print (DIR+user+'_log')
with open(dir,'w') as f:
pickle.dump(dict,f)
return True
- src目录:
users_business.py
#!usr/bin/env python
# -*- coding:utf-8 -*-
# auther:Mr.chen
# 描述: LOGIN = []
TAG = True
import os,sys
sys.path.append('..')
from lib import common
from lib.Players_model import players_Model
import Story_start DIR = os.path.dirname(__file__)
DIR = DIR.replace('src','db/') def user_Login():
num = 0
List = []
dict = common.log_info_read(DIR + 'config_conf')
if dict == False:
print ("请让管理员先创建怪物及锁妖塔模型后再来!")
return
if len(dict['players']) == 0:
print ("请注册角色以后再来!")
return
while TAG:
text = """
你一共创建了{0}个角色如下:
""".format(str(len(dict['players'])))
print (text)
for P in dict['players']:
print ("{0},姓名:{1},年龄:{2},国籍:{3},特长:{4},体力:{5},武力:{6},智力:{7},魅力:{8},游戏模式:{9}"
.format(str(num+1),P.Name,P.Age,P.Nationality,P.Specialty,P.Strength,P.Force,P.IQ,P.Charm,P.GameMode))
num += 1
List.append(str(num))
choose = raw_input("请输入索引选择登陆角色(单选):")
if choose in List:
LOGIN.insert(0,dict['players'][int(choose)-1])
print ("{0}角色登陆成功!".format(LOGIN[0].Name))
return
else:
print ("您的选择有误,请重新选择!")
num = 0 def login_Check():
dict = common.log_info_read(DIR + 'config_conf') name = raw_input("请输入你的姓名:")
age = raw_input("请输入你的年龄:")
nationality = raw_input("请输入你的国籍:") text = """
游戏可选特长如下:
1,无双(初始武力+10,武力越高,敌人的伤害越低)
2,奇才 (初始智力+10,智力越高遇敌率越低)
3,妖异 (初始魅力+10,魅力越高,敌人暴击率越低)
4,守财 (初始体力+300,体力越高越耐打)
"""
while TAG:
print(text)
specialty = raw_input("请输入索引选择你的特长(单选):")
Dic = {'':'无双','':'奇才','':'妖异','':'守财'}
if specialty in Dic.keys():
specialty = Dic[specialty]
break
else:
print ("你的输入有误,请重新输入!")
while TAG:
decide = raw_input("是否开启作弊模式?(y/n)")
if decide == 'y':
gamemode = '作弊模式'
break
elif decide == 'n':
gamemode = '正常模式'
break
else:
print ("你的输入有误!")
text = """
你的注册信息如下:
姓名:{0}
年龄:{1}
国籍:{2}
特长:{3}
模式:{4}
""".format(name,age,nationality,specialty,gamemode)
while TAG:
print (text)
decide = raw_input("是否确认(y/n):")
if decide == 'y':
P = players_Model(name,age,nationality,specialty,gamemode,dict['towers'])
# Dict = {'无双': 'Force', '奇才': 'IQ', '妖异': 'Charm'}
if specialty == '无双':
P.Force += 10
elif specialty == '奇才':
P.IQ += 10
elif specialty == '妖异':
P.Charm += 10
else:
P.Strength += 300
if gamemode == '作弊模式':
P.Force = 100
P.IQ = 100
P.Charm = 100
P.Strength = 100000 dict['players'].append(P)
common.log_info_write(DIR + 'config_conf', dict)
print ('信息注册成功')
return
elif decide == 'n':
return
else:
print ('你的输入有误!') def user_Main(): text = """
欢迎体验模拟的人生
1,角色选择
2,角色注册
3,游戏开始
4,游戏退出
"""
while TAG:
print (text)
dict = {'':user_Login,'':login_Check,'':Story_start.Pre_chapter,'':common.Exit}
choose = raw_input("请输入你的选择:")
if choose in dict.keys():
if choose == '' and LOGIN != []:
dict[choose](LOGIN[0])
elif choose == '':
print ("请登陆角色后再来!")
else:
dict[choose]()
else:
print ("你的输入有误!") if __name__ == "__main__":
user_Main()
admin_business.py
#!usr/bin/env python
# -*- coding:utf-8 -*-
# auther:Mr.chen
# 描述: import os,sys
sys.path.append('..')
from lib.Small_monster_model import small_monster_Model
from lib.Lock_demon_tower_model import lock_demon_tower_Model
from lib import common DIR = os.path.dirname(__file__)
DIR = DIR.replace('src','db/') TAG = True def create_monsters_model():
"""
创建小怪模型
:return: None
"""
while TAG:
name = raw_input("请输入怪物的姓名:")
hurt = raw_input("请输入怪物的破坏力:")
text = """
怪物信息如下:
姓名: {0}
破坏力:{1}
""".format(name,hurt)
print (text)
decide = raw_input("是否确认(y/n):")
if decide == 'y':
M = small_monster_Model(name,hurt)
dict = common.log_info_read(DIR+'config_conf')
if dict != False:
dict['monsters'].append(M)
common.log_info_write(DIR + 'config_conf', dict)
print ("怪物信息保存成功!")
return
else:
dict = {
'monsters':[M],
'towers':[],
'players':[]
}
common.log_info_write(DIR+'config_conf',dict)
print ("怪物信息保存成功!")
return
elif decide == 'n':
break
else:
print ("您的输入有误!") def create_Tower_model():
"""
创建锁妖塔模型
:return: None
""" dict = common.log_info_read(DIR + 'config_conf')
if dict == False:
print ("请先创建怪物模型后再来!")
return
name = raw_input("请输入锁妖塔的名称:")
difficulty = raw_input("请输入本层的难度(倍增小怪攻击力):")
T= lock_demon_tower_Model(name,difficulty,dict['monsters'])
while TAG:
text = """
课程的信息如下:
塔名: {0}
难度: {1}
""".format(name,difficulty)
print (text)
decide = raw_input("是否确认(y/n):")
if decide == 'y':
dict['towers'].append(T)
common.log_info_write(DIR + 'config_conf', dict)
return
elif decide == 'n':
return
else:
print ("您的输入有误!") def model_Config():
"""
查看已经创建的模型
:return: None
"""
num = 0
Num = 0
dict = common.log_info_read(DIR + 'config_conf')
if dict == False:
print ("请先创建怪物模型后再来!")
return
print ("已经创建的怪物模型,如下:".format(str(len(dict['monsters']))))
for M in dict['monsters']:
print ("{0}:怪物名:{1},破坏力:{2},掉宝:{3}".format(str(num + 1), M.Name, M.Hurt, M.Drop))
num += 1
print ("已经创建的塔模型,如下:".format(str(len(dict['towers']))))
for P in dict['towers']:
print ("{0}:塔名:{1},难度:{2},怪物列表:{3}".format(str(Num + 1), P.Lname, P.Difficulty, P.Mlist_obj))
Num += 1 def admin_Main(log = None):
"""
管理员管理界面
:param log: 用户登录标志
:return: None
"""
while TAG:
text = """
欢迎来到管理员界面 {0}登陆中
1,创建怪物模组
2,创建锁妖塔模组
3,查看模组配置
4,系统退出
""".format(log)
print (text)
while TAG:
choose = raw_input('请输入你的选择:')
if choose == '':
create_monsters_model()
break
elif choose == '':
create_Tower_model()
break
elif choose == '':
model_Config()
break
elif choose == '':
common.Exit()
else:
print ('您的输入有误!') if __name__ == "__main__":
admin_Main('admin')
Story_start.py
#!usr/bin/env python
# -*- coding:utf-8 -*-
# auther:Mr.chen
# 描述: import time,os,sys
sys.path.append('..')
from lib import common
# from lib.Players_model import players_Model
DIR = os.path.dirname(__file__)
DIR = DIR.replace('src','db/')
TAG = True def Pre_chapter(user):
time.sleep(2)
title = """
* * * * * * * * * * * * * * * * * * * * * * *预章:传说* * * * * * * * * * * * * * * * * * * * * * *
"""
print (title)
time.sleep(5)
text = """
相传很久以前,于古国疆域,有一奇人姓夸名父.
以大力闻于世间,以才智惊于圣贤,以风韵传于万载..
忽一日,慕之者至.询问之,其曰...
吾父乃真之才,生于凡中.无师而达天地...
终其一生教化万民,此乃吾真之所持..
父之事迹.且听我慢慢道来... """
for i in text.decode('utf-8'):
if i != ' ':
time.sleep(0.5)
print i.encode('utf-8'),
else:
print i.encode('utf-8'),
The_first_chapter(user) def The_first_chapter(user): # dict = common.log_info_read(DIR + 'config_conf')
# for S in dict['students']:
# if S.Name == user.Name:
time.sleep(2)
introduce = """
登场人物介绍 姓名:{0}
年龄:{1}
国籍:{2}
特长:{3}
体力:{4}
武力:{5}
智力:{6}
魅力:{7}
秘籍:无 点评:屌丝,唯撩妹甚 姓名:灵儿
年龄:22
国籍:china
特长:
体力:1000
武力:70
智力:70
魅力:100
秘籍:游戏保护,万法不侵 点评:白富美
""".format(user.Name,user.Age,user.Nationality,user.Specialty,user.Strength,user.Force,user.IQ,user.Charm)
for i in introduce.decode('utf-8'):
if i != ' ':
time.sleep(0.2)
print i.encode('utf-8'),
else:
print i.encode('utf-8'),
time.sleep(2)
title = """
* * * * * * * * * * * * * * * * * * * * * * *第一章:缘启* * * * * * * * * * * * * * * * * * * * * * *
"""
print (title)
time.sleep(5)
text = """
我的父亲叫做{0},本是一介草民,少时机缘之下,
救助了一个跳河自杀之人,本也并无所求,只因
我父那时在河中捕鱼,闲河中波澜太盛,吓跑鱼儿,
故,救之,以安抚鱼心。谁想此人竟是一小门派
掌教之子,因修炼走火,盲目间跌落河中。恰逢我父
出海,机缘所致,掌教有感我父恩德,故收其为徒,
传功授法,指引修行。说来也怪,我父不论武力{1},
智力{1}魅力{2}尽数低于常人,但唯独撩妹能力
极其出众,故派中最小师妹灵儿常伴左右,个中滋味
不足为外人道也。 """.format(user.Name,user.Force,user.IQ,user.Charm)
for i in text.decode('utf-8'):
if i != ' ':
time.sleep(0.5)
print i.encode('utf-8'),
else:
print i.encode('utf-8'),
The_second_chapter(user) def The_second_chapter(user):
time.sleep(2)
introduce = """
登场人物介绍 姓名:高富帅
年龄:34
国籍:china
特长:有钱有势
体力:1000
武力:70
智力:70
魅力:70
秘籍:无 点评:如其名 """
for i in introduce.decode('utf-8'):
if i != ' ':
time.sleep(0.2)
print i.encode('utf-8'),
else:
print i.encode('utf-8'),
time.sleep(2)
title = """
* * * * * * * * * * * * * * * * * * * * * * *第二章:幻灭* * * * * * * * * * * * * * * * * * * * * * *
"""
print (title)
time.sleep(5)
text = """
我父和灵儿就这样朝夕相处,日久生情,只待谈婚论嫁之时。
但,世事难料。一日,掌门大寿,宴请四方,祝寿者繁多。
有一人姓高名富帅,乃当朝一品大员之子,见灵儿貌美,
意欲图之。在其下手一刻,幸被我父所阻,于是心生恨意,
命其下人,禀报大员,以圣上赐婚为由,向掌门施压。怎料,
掌门欲息事宁人,遂命灵儿随高富帅回京,奉旨完婚。师命
难违,灵儿纵千般不愿,亦感无可奈何。临行前,挥泪别过,
劝我父放下仇恨,勿思勿念。我父伤心之余,亦感自身渺小。
暗发宏愿,以期报仇雪恨,救灵儿于水火之间。
"""
for i in text.decode('utf-8'):
if i != ' ':
time.sleep(0.5)
print i.encode('utf-8'),
else:
print i.encode('utf-8'),
The_third_chapter(user) def The_third_chapter(user):
time.sleep(2)
title = """
* * * * * * * * * * * * * * * * * * * * * * *第三章:暗涛* * * * * * * * * * * * * * * * * * * * * * *
"""
print (title)
time.sleep(5)
text = """
灵儿事毕,我父再无心静修,辞别掌教,下山入世。
得一高人指点,拜于一隐门之中,勤学苦练,终得
真传。我父正欲出山报仇,被隐门上士所阻,言道
京城宦官家有一大内高手田伯光,武力高达90有余,
欲胜之需闯本门的锁妖塔拿一绝世宝物(双倍暴击率)
方可成行。
"""
for i in text.decode('utf-8'):
if i != ' ':
time.sleep(0.5)
print i.encode('utf-8'),
else:
print i.encode('utf-8'),
time.sleep(2)
while TAG:
text = """
剧情分支选择如下:
1,听劝
2,不听劝 """
print (text)
choose = raw_input("请输入索引进行选择")
if choose == '':
Lock_demon_tower(user)
elif choose == '':
Fail_ending_one()
else:
print ("你的选择有误!") def Lock_demon_tower(user):
List = []
dict = common.log_info_read(DIR + 'config_conf')
for pobj in dict['players']:
if pobj.Name == user.Name:
P = pobj time.sleep(2)
title = """
* * * * * * * * * * * * * * * * * * * * * * *第四章:勇闯锁妖塔* * * * * * * * * * * * * * * * * * * * * * *
"""
print (title)
time.sleep(5)
text = """
反复思量,我父还是决定暂缓报仇,遵从隐士的看法,
独自一人来到锁妖塔前,看者前方雄伟的高达{0}
层的锁妖塔,暗下决心,要尽快完成闯塔拿到宝物.
于是,我父来到了塔下的驿站里...
""".format(str(len(user.Tlist_obj)))
for i in text.decode('utf-8'):
if i != ' ':
time.sleep(0.5)
print i.encode('utf-8'),
else:
print i.encode('utf-8'),
while TAG:
test = """
请问现在你想去哪?
1,闯塔
2,打开背包(吃药) 你还有{0}体力
3,不闯了,直接去报仇
""".format(str(P.Strength))
print (test)
choose = raw_input("请输入索引进行选择:")
num = 0
bum = 0
if choose == '':
for tobj in dict['towers']:
if P.schedule[tobj] == 100:
schedule = '已达成'
bum += 1
else:
schedule = P.schedule[tobj]
print ("{0},{1},难度系数:{2},进度率:{3}%,创塔次数:{4}次".format(str(num+1),tobj.Lname,tobj.Difficulty,str(schedule),str(P.num[tobj])))
if bum == len(P.Tlist_obj):
print ("{0},锁妖塔顶层,难度系统:0".format(str(num+2)))
num += 1
List.append(str(num))
decide = raw_input("请输入索引进行选择:")
if decide == str(len(P.Tlist_obj)+1) and bum == len(P.Tlist_obj):
Lock_demon_tower_Top(user)
if decide in List:
if P.schedule[dict['towers'][int(decide)-1]] < 100:
for i in range(10):
re = P.Begins(dict['towers'][int(decide)-1])
if re == False:
common.log_info_write(DIR + 'config_conf', dict)
break
else:
common.log_info_write(DIR + 'config_conf', dict)
else:
print ("本层已经闯过了!")
else:
print ("你的输入有误!") elif choose == '':
while TAG:
text = """
背囊物品如下: 你还有{0}体力
1,大还丹:{1}个
2,小还丹 {2}个
""".format(str(P.Strength),str(P.Item['大还丹']),str(P.Item['大还丹']))
print (text)
choose = raw_input("请输入索引进行选择:")
if choose == '':
if P.Item['大还丹'] > 0 :
P.Item['大还丹'] -= 1
P.Strength += 500
common.log_info_write(DIR + 'config_conf', dict)
break
else:
print ("大还丹个数为0")
break
elif choose == '':
if P.Item['小还丹'] > 0:
P.Item['小还丹'] -= 1
P.Strength += 200
common.log_info_write(DIR + 'config_conf', dict)
break
else:
print ("小还丹个数为0")
break
else:
print ("你的输入有误!请重新输入!") elif choose == '':
Fail_ending_one()
else:
print ("你的输入有误!") def Lock_demon_tower_Top(user):
dict = common.log_info_read(DIR + 'config_conf')
for pobj in dict['players']:
if pobj.Name == user.Name:
P = pobj
time.sleep(2)
title = """
* * * * * * * * * * * * * * * * * * * * * * *第五章:锁妖塔顶* * * * * * * * * * * * * * * * * * * * * * *
"""
print (title)
time.sleep(5)
text = """
克服磨难,吾父终至,锁妖塔顶。与前相比,此地奇静。
地方不大,有水缸一口,两人高有余。好奇之下,
侧身观之,怎料竟有活人居于缸内,遂上前,救出。
原来此人就是灵儿。询问下,方知,那日毕,其心已死,
趁高富帅不备,遂逃出,寻短见,幸被隐门上士所救,居
此疗伤,恰逢我父闯塔,喜得相逢。至此,我父恍然,直呼,
此宝胜万宝也(主角瞬间满怒体力翻倍)
"""
for i in text.decode('utf-8'):
if i != ' ':
time.sleep(0.5)
print i.encode('utf-8'),
else:
print i.encode('utf-8'),
P.Strength = P.Strength * 2
common.log_info_write(DIR + 'config_conf', dict)
Wu_Duo(user) def Wu_Duo(user): time.sleep(2)
title = """
* * * * * * * * * * * * * * * * * * * * * * *终章:武夺* * * * * * * * * * * * * * * * * * * * * * *
"""
print (title)
time.sleep(5)
text = """
经过不懈的努力,战胜了诸多困苦(实在懒得编了),
我们的主角终于和美女团结友爱的在一起生活,剧终 """
for i in text.decode('utf-8'):
if i != ' ':
time.sleep(0.5)
print i.encode('utf-8'),
else:
print i.encode('utf-8'),
exit() def Fail_ending_one(): time.sleep(2)
title = """
* * * * * * * * * * * * * * * * * * * * * * *终章:武夺* * * * * * * * * * * * * * * * * * * * * * *
"""
print (title)
time.sleep(5)
text = """
报仇心切,我父终是不肯听劝,遂一人趁夜逃出隐门,
数日后,进京踩点,待万事俱备只欠东风之时,奈何
大员祖宅大内高手,先知先觉,早已暗随我父三日有余,
眼见我父正待出手,遂突袭之,我父重伤,感叹报仇无望,
自此隐居山林,不问世事.....BAD END...... """
for i in text.decode('utf-8'):
if i != ' ':
time.sleep(0.5)
print i.encode('utf-8'),
else:
print i.encode('utf-8'),
exit()
从零开始学Python07作业源码:虚拟人生(仅供参考)的更多相关文章
- 从零开始学Python04作业源码:模拟ATM电子银行(仅供参考)
bin目录:程序启动入口 ATM_start.py: #!/usr/bin/python # -*- coding: utf-8 -*- # 模拟ATM电子银行+登录账户权限控制+管理员管理模块 # ...
- 从零开始学Python08作业源码:开发简单的FTP(仅供参考)
服务器端:server_server.py #!usr/bin/env python # -*- coding:utf-8 -*- # auther:Mr.chen # 描述: import sock ...
- 从零开始学Python06作业源码(仅供参考)
Python Version 2.7x 一,bin目录:程序启动入口 SelectLesson_start.py #!usr/bin/env python # -*- coding:utf-8 -*- ...
- 【原创】从零开始学SpagoBI5.X源码汉化编译
从零开始学SpagoBI5.X源码汉化编译 一.新建Tomact Server 服务器并配置测试1.文件-新建-其他-过滤server-服务类型选择Tomact V7.0 Server2.根据需要修改 ...
- 从零开始学Python07作业思路:模拟人生小游戏
标签(空格分隔): 从零开始学Python 一,作业说明 模拟人生: 1 定义三个人物,屌丝John,美女Liz,高富帅Peter. John和Liz大学时是恋人,毕业工作后,Liz傍上了Peter, ...
- 最新咕咆+鲁班+图灵+享学+蚂蚁+硅谷+源码 Java架构师资料《Java架构师VIP课程》
最新的Java架构师完整资料,完整视频+源码+文档. 每一套都是一百多个G的资料,无密. JAVA架构师全套课程 咕泡学院互联网架构师第一期 咕泡学院互联网架构师第二期 咕泡学院互联网架构师第三期 博 ...
- Unity上一页下一页切换功能实现源码(仅供参考)
在做项目时我们有时需要实现切换上一页下一页图片,切换上一首下一首歌曲等等类似的功能.这里写了个简单的实现源码(仅供参考),要是有更好的方法欢迎提出来,共同进步~ 以切换上一页下一页图片为例: usin ...
- 和菜鸟一起学linux内核源码之基础准备篇
来源:http://blog.csdn.net/eastmoon502136/article/details/8711104 推荐阅读:linux内核源码最初版linux内核源代码,简单易懂,适合初学 ...
- 带着问题学 Spring MVC 源码: 一、概述
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! 简单就好,生活可以很德国 Q:什么是 Spring MVC ? ※ Spring MVC 是 S ...
随机推荐
- percona5.7 源码安装
200 ? "200px" : this.width)!important;} --> 介绍 主要为了测试percona的线程池的性能,这里就简单介绍一下percona5.7 ...
- ASP.NET MVC 过滤器(四)
ASP.NET MVC 过滤器(四) 前言 前一篇对IActionFilter方法执行过滤器在框架中的执行过程做了大概的描述,本篇将会对IActionFilter类型的过滤器使用来做一些介绍. ASP ...
- Rxjava入门
简介 RxJava是一个开源的Rx框架ReactiveX的java版本. ReactiveX的主要目的是通过一系列Observable组合异步或事件代码.其中使用的是观察者模式. 可以吧Reactiv ...
- 微信小程序产品定位及功能介绍
产品定位及功能介绍 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 小程序注册 注册小程序帐号 在微信公众平台官网首页(mp.weixin.qq ...
- 20个JS优化代码技巧
原文网址链接为:http://www.jstips.co/ .截取了一部分本人认为比较实用的技巧分享给大家.其中一小部分技巧为JS面向对象的写法,不宜一一列出.关于JS面向对象的写法可参考本人前几篇随 ...
- Loadrunner时间函数、用时间生成订单编号例子
Loadrunner中取时间函数.用时间函数生成订单编号例子: <如要转载,请注明网络来源及作者:Cheers_Lee> 问题的提出: (1)有时候在Loadrunner中用C语言设计脚本 ...
- webBrowser 加载网页
事件 webBrowser_DocumentCompleted private void webBrowser_DocumentCompleted(object sender, WebBrowserD ...
- 被嫌弃的eval和with
× 目录 [1]eval [2]with 前面的话 eval和with经常被嫌弃,好像它们的存在就是错误.在CSS中,表格被嫌弃,在网页中只是用表格来展示数据,而不是做布局,都可能被斥为不规范,矫枉过 ...
- CSS中div覆盖另一个div
将一个div覆盖在另一个div上有两种手段:一是设置margin为负值,二是设置绝对定位. 可以根个人情况设置z-index的值 1->position 为absolute的情况 <htm ...
- Android调用Jni,非常简单的一个Demo
step1:创建一个android项目 Project Name:jnitest Build Target: Android 1.6 Application Nam ...