Life reopens stimulator
"""
作者:->yjy
所有的惊艳都曾历经平庸
"""
import random
import sys
import time
# 打印初始界面
print('+------------------------------+')
print('| |')
print('| >>人生重开模拟器<< |')
print('| |')
print(' 这垃圾人生一秒也不想待了 ')
print('| |')
print('+------------------------------+')
# 设置初始属性
"""
进入游戏后初始属性:
颜值face
体质strong
智力iq
家境home
规定每个属性范围为1-10 并且这四个属性的总和不能超过20,如果玩家的初始属性不合理,则提示玩家输入有误并要求重新输入.体现在代码中就是玩家
玩家输入属性后通过if语句判断输入的属性是否合法,如果不合法则通过while语句要求玩家重新进行输入.
"""
while True:
print('请设置初始属性(可用点数为20)')
face = int(input("请输入颜值(1-10): "))
strong = int(input("请输入体质(1-10): "))
iq = int(input("请输入智力(1-10): "))
home = int(input("请输入家境(1-10): "))
if face < 1 or face >10:
print("颜值输入有误")
if strong < 1 or strong > 10:
print("体质输入有误")
if iq < 1 or iq > 10:
print("智力输入有误")
if home < 1 or home > 10:
print("颜值输入有误")
if face +strong+iq+home > 20:
print("属性总和超过了20,设置有误!")
continue
print('初始属性输入完毕!')
print(f'颜值:{face},体质:{strong},智力:{iq},家境:{home}')
break
#设置角色性别
"""
关于角色的性别,我们可以随机生成一个1-6的整数,类似于掷骰子
如果是单数,则性别设为男孩.
如果是双数,则性别设为女孩.
性别设置后需要借助一个变量将角色的性别保存起来,因为后续男孩和女孩可能会触发不同的事件.
"""
point = random.randint(1,6)
if point % 2 == 1:
gender = 'boy'
print('你是个男孩')
else:
gender = 'girl'
print("你是个女孩")
"""
说明一下:
代码中使用的randint是random模块中的一个函数,random.randint(begin,end)可以生成一个begin - end之间的随机整数
在python中,如果向引入其他模块,需要以import 模块名的方式将对应的模块导入进来,导入模块后以模块名.xxx的方式就能使用该模块中的函数或者变量
"""
# 设置角色出生点
"""
设置角色的出生点,可以根据角色的家境分为四个档位:
10是第一档,加成最高.
7-9是第二档,有一些加成.
4-6是第三档,加成较少.
1-3是第四档,会扣掉属性.
除了将角色的出生点按照家境分为四个档位之外,还可以再生成一个随机数,对每一档的内部在进行一次细分,最终得到角色的出生点,
此处涉及的也就是一些if条件判断而已
"""
point = random.randint(1,3)
if home == 10:
# 第一档
print('你出生在帝都,你的父母都是高官政要')
home +=1
iq +=1
face +=1
elif 7<=home<=9:
# 第二档
if point == 1:
print("你出生在大城市,父母是公务员")
face+=2
elif point==2:
print('你出生在大城市,父母是企业高管')
home+=2
else:
print('你出生在大城市,父母是大学教授')
iq += 2
elif 4<=home<=6:
# 第三档
if point == 1:
print('你出生在三线城市,你的父母是医生')
strong +=1
elif point==2:
print('你出生在镇上,你的父母是老师')
iq+=1
else:
print('你出生在镇上,你的父母是个体户')
home += 1
else:
# 第四档
if point == 1:
print('你出生在农村,父母是辛苦劳作的农民')
strong +=1
face-=2
elif point ==2:
print('你出生在穷乡僻壤,你的父母是无业游民')
home -=1
else:
print('你出生在镇上,你的父母感情不和')
strong -=1
print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
"""
说明一下:
角色的出生点不能仅由家境决定,此处在设置角色出生点时引入随机数的目的就是为了增加随机的因素,毕竟人生本来就充满了很多的随机性。
这里的代码只是起一个示意的作用,因此生成随机数的范围只是1 - 3,如果你愿意也可以生成更大范围的随机数,将每一档的内部进行更细粒度的划分,
这样就能更大的保证每次运行程序后得到的出生点都是不一样的。
"""
"""
针对每一岁,生成人生经历
人生经历的四个阶段
设置完角色的性别和出生点后,就可以针对每一岁生成对应的人生经历了,这里我们按照年龄将人生经历分为以下四个阶段:
1 - 10岁:幼年阶段。
11 - 20岁:青年阶段。
21 - 50岁:壮年阶段。
50岁以后:老年阶段。
在人生的每个阶段都会有不同的经历和事件发生:
幼年阶段:可塑性强,体制、颜值、智力都会有较快的变化。
青年阶段:主要是求学,同时父母一辈会有明显变化,智力和家境会有明显变化。
壮年阶段:相对平稳,属性变化不大,主要是一些随机事件影响到属性。
老年阶段:体质、颜值、智力都会显著退化,并且随着年龄的上升,疾病和死亡的风险逐渐升高。
这时就可以发挥我们的想象力,编写一些合理的人生经历,并在合适的条件下触发这些事件即可。
人生经历生成
这里我们以幼年为例,简单演示一下处理逻辑:
使用for循环,按照年龄从1循环到10,每次循环生成对应年龄的人生经历。
在生成每一年的人生经历之前,先生成一个随机数(充当人生中的随机因素),根据得到的随机数以及角色的性别、
年龄和各种属性来触发不同的事件。
不同的事件被触发后,可能会对角色的属性有正面或负面的影响,因此角色的各个属性会随着事件的触发而不断发生变化。
在这一年的最后打印出所触发的事件,为了方便观察,也可以将这一年后角色的各个属性进行打印。
"""
# 人生经历
# 幼年阶段
for age in range(1,11):
info = f'你今年{age}岁,'
point = random.randint(1,3)
# 性别触发的时间
if gender == 'girl' and home <= 3 and point == 1:
info+='你的家人重男轻女思想非常严重,你被遗弃了!'
print(info)
print('游戏结束!')
sys.exit(0)
# 体质触发的事件
elif strong < 6 and point <3:
info += '你生了一场病,'
if home > 5:
info += '在父母的悉心照料下,你康复了'
strong += 1
home -= 1
else:
info += '你的父母没精力管你,你的身体状况更遭了'
strong -=1
# 颜值触发的事件
elif face <= 4 and age >=7:
info += '你长得太丑了,别的小朋友不喜欢你,'
if iq > 5:
info += '你决定用学习填充自己!'
iq += 1
else:
if gender == 'boy':
info += '你跟别的小朋友经常打架!'
strong += 1
iq -=1
else:
info += '你经常被别的小朋友欺负'
strong -= 1
#智力触发的事件
elif iq <5:
info += '你看起来傻傻的,'
if home >=7 and age>=6:
info += '你的父母把你送到更好的学校学习'
iq += 1
elif 4<=home<=6:
if gender == 'boy':
info += '你的父母鼓励你多运动,争取成为运动员'
strong += 1
else:
info += '你的父母鼓励你多打扮自己'
face += 1
else:
info += '你的父母经常为此吵架'
if point == 1:
strong -=1
elif point ==2:
iq -= 1
else:
pass
# 健康成长事件
else:
info += '你健康成长,'
if point == 1:
info += '你看起来更结实了'
strong += 1
elif point == 2:
info += '你看起来更好看了'
face +=1
else:
info += '这一年没有什么特别的事情发生'
# 打印这一年发生的事情
print(info)
print(f'颜值:{face},体质:{strong},智力:{iq},家境:{home}')
# 为了方便观察,加一个sleep
time.sleep(2)
# 青年阶段
print("\n------青年阶段------\n")
for age in range(18, 31):
info = f'你今年{age}岁, '
point = random.randint(1, 10)
# 职业选择
if point <= 3:
info += '你决定去大城市闯荡, '
if iq > 7:
info += '你找到了一份高薪工作'
home += 1
else:
info += '你找到了一份一般的工作'
home -= 1
elif 3 < point <= 6:
info += '你决定留在家乡工作, '
if strong > 7:
info += '你在家乡成为了一名成功的企业家'
home += 2
else:
info += '你在家乡工作一般'
home -= 1
else:
info += '你决定出国深造, '
if iq > 8:
info += '你在国外留学期间学有所成'
iq += 2
else:
info += '你在国外遇到了很多困难'
iq -= 1
# 打印这一年发生的事情
print(info)
print(f'智力: {iq}, 家境: {home}')
print('---------------------------------------------')
time.sleep(2)
# 壮年阶段
print("\n------壮年阶段------\n")
for age in range(31, 51):
info = f'你今年{age}岁, '
point = random.randint(1, 10)
# 健康问题
if point <= 3:
info += '你突发重病, '
if home > 5:
info += '在家人的照顾下康复了'
strong += 1
else:
info += '因为家庭困难,康复缓慢'
strong -= 1
elif 3 < point <= 6:
info += '你开始重视健康, '
if strong > 7:
info += '你开始锻炼身体, 健康状况良好'
strong += 1
else:
info += '你无暇顾及健康, 身体状况一般'
strong -= 1
else:
info += '你决定关注心理健康, '
if iq > 8:
info += '你通过心理调节找到了生活的平衡'
iq += 1
else:
info += '你的心理问题逐渐加重'
iq -= 1
# 打印这一年发生的事情
print(info)
print(f'体制: {strong}, 颜值:{face},智力: {iq}, 家境: {home}')
print('---------------------------------------------')
time.sleep(2)
# 老年阶段
print("\n------老年阶段------\n")
for age in range(51, 71):
info = f'你今年{age}岁, '
point = random.randint(1, 10)
# 退休生活
if point <= 3:
info += '你过上了富裕的退休生活, '
if home > 7:
info += '你的家庭安定和睦'
home += 1
else:
info += '你的家庭经济状况较差'
home -= 1
elif 3 < point <= 6:
info += '你选择了简朴的退休生活, '
if strong > 7:
info += '你在兴趣爱好中找到了乐趣'
strong += 1
else:
info += '你的生活变得有些单调'
strong -= 1
else:
info += '你感到孤独和无助, '
if iq > 8:
info += '你通过社交活动找到了新的生活乐趣'
iq += 1
else:
info += '你的孤独感加重'
iq -= 1
# 打印这一年发生的事情
print(info)
print(f'体制: {strong}, 颜值:{face},智力: {iq}, 家境: {home}')
print('---------------------------------------------')
time.sleep(2)