#人生重开模拟器
import random
import sys
import time
print(' ---------------------------------------')
print('| |')
print('| 欢迎来到新的人生!!! |')
print('| |')
print(' ---------------------------------------')
#设置初始属性
#颜值,体质,智力,家境
#总和不能超过20,每一项取值在1-10之间
#使用循环,让玩家输入错误的时候可以重新输入
while True:
print('请设置初始属性(可用点数为20)')
face = int(input('请输入颜值(1-10):'))
strong = int(input('请输入体质(1-10):'))
iq = int(input('请输入智力(1-10):'))
home = int(input('请输入家境(1-10):'))
#通过条件语句,对于用户输入的属性值做出校验
#这段逻辑可以使用elif,效果是相同的
#使用elif是多分支只能进入一个,一旦某个条件满足了,就不会走其他分支
#此处虽然没有使用elif,但是使用了continue,一旦某个条件满足,即输入错误
#就会从头再来也就没机会执行后续的条件判定
if face < 1 and face > 10:
print('颜值输入有误!')
continue
if strong < 1 and face > 10:
print('体质输入有误!')
continue
if iq < 1 and face > 10:
print('智力输入有误!')
continue
if home < 1 and face > 10:
print('家境输入有误!')
continue
if face + strong + iq + home > 20:
print('总属性和超过20,输入有误!')
continue
print('初始属性设置完毕!')
print(f'颜值:{face};体质:{strong};智力:{iq};家境:{home}')
break
#生成随机性别
#使用random.randint(beg,end),就能生成[beg,end]随机整数
#此处的random是一个Python中的模块,也就是别人写好的代码,直接给我们来用
#在Python中,如果想引入其他模块,需要先使用import语句,把模块名字导入进来
#PyCharm可以在开头自动导入,但有时不够准确,需要手动导入
point = random.randint(1,6)
if point % 2 == 1:
gender = 'boy'
print('你是个男孩')
else:
gender = 'girl'
print('你是个女孩')
#设定出生地
#家境10第一档,带来属性加成
#家境9-7第二档,带来部分属性加成
#家境6-4第三档,带来少数属性加成
#家境3-1第四档,扣属性
point = random.randint(1,3)
if home == 10:
print('出生在帝都')
print('你的父母是高官')
home += 1
iq += 1
face += 1
elif 7 <= home <= 9:
print('出生在大城市')
if point == 1:
print('父母是公务员')
face += 2
elif point == 2:
print('父母是博士教授')
iq += 2
elif point == 3:
print('父母是企业高管')
home += 2
elif 4 <= home <= 6:
if point == 1:
print('出生在镇上')
print('你的父母是店员')
home += 1
elif point == 2:
print('出生在三线城市')
print('你的父母是老师')
iq += 1
elif point == 3:
print('出生在二线城市')
print('你的父母是医生')
strong += 1
elif 3 <= home <= 1:
print('出生在农村')
if point == 1:
print('你的父母是无业游民')
home -= 1
iq += 1
elif point == 2:
print('你的父母是农民')
strong += 2
face -= 1
elif point == 3:
print('你的父母是村里暴发户')
home += 2
iq -= 1
print(f'颜值:{face};体质:{strong};智力:{iq};家境:{home}')
#幼年阶段
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是system的缩写,也是Python内部的一个模块
#作用是退出程序,参数一般写0
sys.exit(0)
#体质触发的事件
#使用elif是为了保证每年只触发一个事件
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 >= 8 and age >= 6:
info += '你的父母给你报补习班!'
iq += 1
elif 4 <= home <= 7:
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:
pass
print(info)
print(f'颜值:{face};体质:{strong};智力:{iq};家境:{home}')
print(' --------------------------------------- ')
#也是一个模块
#暂停1秒
time.sleep(1)