Python -- 人生重开模拟器(简易版)

一.角色初始属性设置

在游戏中我们设定四个属性:

颜值(face)

体质(strong)

智力 (iq)

家境(home)

约定每个属性范围为[1,10],且总和不超过20,对于用户非法输入属性值,我们要给予提示,并重新输入,在这里我们采用while循环和if,continue,break关键字结合

python 复制代码
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("颜值设置有误!")
        print("------------------------------------")
        continue
    if strong < 1 or strong > 10:
        print("体质设置有误!")
        print("------------------------------------")
        continue
    if iq < 1 or iq > 10:
        print("智力设置有误!")
        print("------------------------------------")
        continue
    if home < 1 or home > 10:
        print("家境设置有误!")
        print("------------------------------------")
        continue
    if face + strong + iq + home > 20:
        print("总点数超过了20!")
        print("------------------------------------")
        continue

    #如果上述条件没有触发,则表示用户输入是合法的
    #此时可以跳出循环结束输入
    print("初始属性设置完成!")
    print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
    break

二.初始性别设置

通过random.randint()生成1~6的随机数

单数为男孩

双数为女孩

(注意:random.randint(a,b)函数是生成一个包含端点a,b的随机整数,在使用前要导入该模块,格式如下:import random)

python 复制代码
point = random.randint(1,6)
#单数为男,双数为女
if point % 2 == 1:
    gender = 'boy'
    print("你是个男孩")
else:
    gender = "girl"
    print("你是个女孩")

三.设置出生点

根据家境(home)分成四个档

  • 10是第一档,属性加成较高
  • 7,9\]是第二档,有些属性加成

  • 1,3\]是第四档,有扣除属性的可能性

(该模块主要用if-elif-else结构完成)

python 复制代码
point = random.randint(1,3)

if home == 10:
    # 第一档
    print("你出生在帝都,你的父母是高官政要")
    iq += 1
    face += 1
    home += 1
elif 7 <= home <= 9:
    # 第二档
    if point == 1:
        print("你出生在大城市,你的父母是企业高管")
        home += 2
    elif point == 2:
        print("你出生在大城市,你的父母是公务员")
        face += 2
    else:
        print("你出生在大城市,你的父母是大学教授")
        iq += 2
elif 4 <= home <=6:
    #第三档
    if point == 1:
        print("你出生在三线城市,你的父母是老师")
        iq += 1
    if point == 2:
        print("你出生在三线城市,你的父母是医生")
        face += 1
    if point == 3:
        print("你出生在镇上,你的父母是个体户")
        home += 1
else:
    #第四档
    if point == 1:
        print("你出生在农村,你的父母是辛勤劳作的农民")
        strong += 1
        face -= 1
    elif point == 2:
        print("你出生在穷乡僻壤,你的父母是无业游民")
        home -= 1
    else:
        print("你出生在镇上,你的父母感情不和")
print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
print("------------------------------------")

四.不同阶段的事件(以童年阶段为例)

童年阶段[1,10]可塑性较强,颜值,体质,智力会有显著变化,以下是简单处理逻辑:

  • 整体使用for循环,按照年龄循环起来
  • 根据性别,年龄,颜值等属性触发不同的事件,使用if-elif-else结构实现
  • 针对每一年,采用random.randint()函数生成1~3随机数,触发不同事件
  • 如果夭折,直接sys.exit(0)退出程序
  • 不同的事件会有正面/负面影响
  • 每年末打印事件
  • 使用time.sleep(1)暂停程序1s,便于观察结果

(注意:使用sys.exit(0)和time.sleep(1)函数,需要提前导入对应模块名sys和time)

python 复制代码
for age in range(1,11):
    # 将每年信息存储在一个字符串中,在每年末统一打印
    info = f'你今年{age}岁.'
    point = random.randint(1,3)
    # 性别触发事件
    if gender == 'gril' and home <= 3 and point == 1:
        info += "你家里人重男轻女思想很严重,你被遗弃了!"
        print(info)
        print("游戏结束!")
        sys.exit(0)
    #颜值触发事件
    elif face <=3 and age >=7:
        info += '你长得太丑了,别的小朋友都不喜欢你.'
        if iq > 5:
            info += '你决定学习知识来填充自己.'
            iq += 1
        else:
            if gender == 'gril':
                info += '你经常被别的小朋友欺负!'
                strong -= 1
            else:
                info += '你经常和别的小朋友打架!'
                strong -= 1
                iq -= 1
    #体质触发事件
    elif strong <=6 and 1 <= point <3:
        info += '你生了一场大病.'
        if home >=5:
            info += '在家人的悉心照顾下,你的病痊愈了.'
            strong += 1
            home -= 1
        else:
            info += '你的父母没精力管你,你的身体状况更糟糕了.'
            strong -= 1
    # 智力触发事件
    elif iq <=4:
        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:
            strong += 1
            info += '你变的更结实了.'
        elif point == 2:
            face += 1
            info += '你变的更好看了.'
        else:
            # 无事发生
            pass


    print(info)
    print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
    print("------------------------------------")
    time.sleep(1)

五.后记

后续的青年阶段[11,20],壮年阶段[21,50],老年阶段[51,100]使用的逻辑和童年阶段一致,不同的是每年触发的事件,在这里对这三个板块进行了简单的描写,对于事件发生的逻辑不够完整,还需用户自己去调整

六.源代码

python 复制代码
import random
import sys
import time

# 打印欢迎界面
print("+--------------------------------+")
print("|                                |")
print("|       花有重开日,人无再少年      |")
print("|                                |")
print("|       欢迎来到人生重开模拟器      |")
print("|                                |")
print("+--------------------------------+")

# 设置初始属性
#颜值,体质,智力,家境,总和不能超过20,每一项取1-10
#使用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("颜值设置有误!")
        print("------------------------------------")
        continue
    if strong < 1 or strong > 10:
        print("体质设置有误!")
        print("------------------------------------")
        continue
    if iq < 1 or iq > 10:
        print("智力设置有误!")
        print("------------------------------------")
        continue
    if home < 1 or home > 10:
        print("家境设置有误!")
        print("------------------------------------")
        continue
    if face + strong + iq + home > 20:
        print("总点数超过了20!")
        print("------------------------------------")
        continue

    #如果上述条件没有触发,则表示用户输入是合法的
    #此时可以跳出循环结束输入
    print("初始属性设置完成!")
    print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
    break
print("------------------------------------")

#初始化性别
point = random.randint(1,6)
#单数为男,双数为女
if point % 2 == 1:
    gender = 'boy'
    print("你是个男孩")
else:
    gender = "girl"
    print("你是个女孩")

#设置出生点
point = random.randint(1,3)

if home == 10:
    # 第一档
    print("你出生在帝都,你的父母是高官政要")
    iq += 1
    face += 1
    home += 1
elif 7 <= home <= 9:
    # 第二档
    if point == 1:
        print("你出生在大城市,你的父母是企业高管")
        home += 2
    elif point == 2:
        print("你出生在大城市,你的父母是公务员")
        face += 2
    else:
        print("你出生在大城市,你的父母是大学教授")
        iq += 2
elif 4 <= home <=6:
    #第三档
    if point == 1:
        print("你出生在三线城市,你的父母是老师")
        iq += 1
    if point == 2:
        print("你出生在三线城市,你的父母是医生")
        face += 1
    if point == 3:
        print("你出生在镇上,你的父母是个体户")
        home += 1
else:
    #第四档
    if point == 1:
        print("你出生在农村,你的父母是辛勤劳作的农民")
        strong += 1
        face -= 1
    elif point == 2:
        print("你出生在穷乡僻壤,你的父母是无业游民")
        home -= 1
    else:
        print("你出生在镇上,你的父母感情不和")
print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
print("------------------------------------")


# 幼年时期
for age in range(1,11):
    # 将每年信息存储在一个字符串中,在每年末统一打印
    info = f'你今年{age}岁.'
    point = random.randint(1,3)
    # 性别触发事件
    if gender == 'gril' and home <= 3 and point == 1:
        info += "你家里人重男轻女思想很严重,你被遗弃了!"
        print(info)
        print("游戏结束!")
        sys.exit(0)
    #颜值触发事件
    elif face <=3 and age >=7:
        info += '你长得太丑了,别的小朋友都不喜欢你.'
        if iq > 5:
            info += '你决定学习知识来填充自己.'
            iq += 1
        else:
            if gender == 'gril':
                info += '你经常被别的小朋友欺负!'
                strong -= 1
            else:
                info += '你经常和别的小朋友打架!'
                strong -= 1
                iq -= 1
    #体质触发事件
    elif strong <=6 and 1 <= point <3:
        info += '你生了一场大病.'
        if home >=5:
            info += '在家人的悉心照顾下,你的病痊愈了.'
            strong += 1
            home -= 1
        else:
            info += '你的父母没精力管你,你的身体状况更糟糕了.'
            strong -= 1
    # 智力触发事件
    elif iq <=4:
        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:
            strong += 1
            info += '你变的更结实了.'
        elif point == 2:
            face += 1
            info += '你变的更好看了.'
        else:
            # 无事发生
            pass


    print(info)
    print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
    print("------------------------------------")
    time.sleep(1)


#青年阶段
for age in range(11,21):
    info = f'你今年{age}岁,'
    point = random.randint(1,3)
    # 颜值触发事件
    if face >= 7 and home >= 7 and 1 <= point <= 2:
        info += '你的家境十分优渥,且长相出众,在学校深受同学追捧'
    # 体质触发事件
    elif strong >= 8 and age == 15:
        info += '你的体育天赋很高,'
        # 性别触发事件
        if gender == 'boy' and iq <=4:
            info += '但是你的学习成绩很差,中考过后去了普通高中'
            if 2 <= point < 3:
                info += '取得了短跑省赛冠军,获得了进入国家队的资格'
                strong += 1
        else:
            if home <=4 and point == 1:
                info += '但是家庭困难,你无法兼顾家庭和学习,最终体育天赋被埋没,放弃中考辍学回家'
                strong -= 2
                iq -= 1
            elif home >= 8 and iq >= 6:
                info += '你的家人在学习和体育方面着重培养你,最终进入重点高中'
                home -= 1
                iq += 1
                strong += 1
    #智力触发事件
    elif iq >= 6:
        info += '你的学习成绩中等,'
        if age == 18 and 4<= face <=7 and point == 3:
            info += '且小有姿色,在高三这年你和他人谈恋爱,导致学习成绩下滑,'
            iq -= 2
            if home >= 8:
                info += '你的父母选择把你送出国深造'
                home -= 2
                iq += 1
            elif 5 <= home <7:
                info += '最终去了民办二本'
                home -= 1
            else:
                info += '你的家庭负担不起民办费用,最终你去了大专'
        elif home >= 5 and 1 <= point <3:
            info += '家里人请老师给你补课,学习成绩有所提升'
            iq += 1
        else:
            if point == 1:
                info += '你的成绩提高了'
                iq += 1
            elif point == 2:
                info += '你的成绩没变'
            else:
                info += '你的成绩更好了,身体素质也有所提高'
                iq += 1
                strong += 1
    # 健康成长事件
    else:
        info += '你健康成长,'
        if point == 1:
            info += '你的学习成绩提高了'
            iq += 1
        elif point == 2:
            info += '你变得更好看了'
            face += 1
        else:
            pass


    print(info)
    print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
    print("------------------------------------")
    time.sleep(1)


# 壮年时期
for age in range(21,51):
    # info = f'你今年{age}岁,'
    point = random.randint(1,3)
    info = f'你今年{age}岁,'

    # 智力触发事件
    if iq >= 6 and age <= 22:
        if home >=7 :
            info += '你的父母决定毕业后送你到国外深造'
            home -= 1
            iq += 1
        elif 4 <= home < 6 and point == 2 :
            info += '你获得了保研资格'
            iq += 1
        elif home <4:
            info += '为了补贴家里,大学期间你天天逃课兼职,毕业困难'
            iq -= 1
        else:
            info += '你和往常一样过着平淡的日子'
    else:
        info += '你和许多普通人一样,每天朝九晚五'
        if point == 1:
            info += ',你升职了'
            home += 1
        elif point == 2:
            info += ',你被开除了'
            home -= 1
        else:
            pass

    print(info)
    print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
    print("------------------------------------")
    time.sleep(1)


# 老年阶段
for age in range(51,100):
    info = f'你今年{age}岁,'
    point = random.randint(1,3)

    if gender == 'boy':
        info += '你子孙满堂,家庭美满'
        home += 1
        if strong < 4 :
            info += ',你重病缠身,即将不久于世'
            print('游戏结束!')
            sys.exit(0)
        else:
            info += ',你老当益壮,每天强身健体'
            if point == 1:
                strong += 1
    else:
        info += '你平淡的过完这一生'

    print(info)
    print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
    print("------------------------------------")
    time.sleep(1)
相关推荐
幸运小圣2 小时前
Sass和Less的区别【前端】
前端·less·sass
databook3 小时前
Manim实现镜面反射特效
后端·python·动效
星哥说事3 小时前
Python自学21 - Python处理图像
python
zhangzeyuaaa3 小时前
Linux 进程名查看与pkill命令的使用
linux·运维·服务器
BXCQ_xuan3 小时前
软件工程实践八:Web 前端项目实战(SSE、Axios 与代理)
前端·axios·api·sse
大棋局3 小时前
基于 UniApp 的弹出层选择器单选、多选组件,支持单选、多选、搜索、数量输入等功能。专为移动端优化,提供丰富的交互体验。
前端·uni-app
racerun3 小时前
CSS Display Grid布局 grid-template-columns grid-template-rows
开发语言·前端·javascript
美好的事情能不能发生在我身上3 小时前
Linux实用操作以及基础命令
linux·运维·服务器