当前位置: 首页 > news >正文

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

一.角色初始属性设置

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

        颜值(face)

        体质(strong)

        智力 (iq)

         家境(home)

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

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("------------------------------------")continueif strong < 1 or strong > 10:print("体质设置有误!")print("------------------------------------")continueif iq < 1 or iq > 10:print("智力设置有误!")print("------------------------------------")continueif home < 1 or home > 10:print("家境设置有误!")print("------------------------------------")continueif 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)

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

三.设置出生点

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

  • 10是第一档,属性加成较高
  • [7,9]是第二档,有些属性加成
  • [4,6]是第三档,属性加成较少
  • [1,3]是第四档,有扣除属性的可能性

再用random.randint生成1~3随机数,对于每种情况的细分

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

point = random.randint(1,3)if home == 10:# 第一档print("你出生在帝都,你的父母是高官政要")iq += 1face += 1home += 1
elif 7 <= home <= 9:# 第二档if point == 1:print("你出生在大城市,你的父母是企业高管")home += 2elif point == 2:print("你出生在大城市,你的父母是公务员")face += 2else:print("你出生在大城市,你的父母是大学教授")iq += 2
elif 4 <= home <=6:#第三档if point == 1:print("你出生在三线城市,你的父母是老师")iq += 1if point == 2:print("你出生在三线城市,你的父母是医生")face += 1if point == 3:print("你出生在镇上,你的父母是个体户")home += 1
else:#第四档if point == 1:print("你出生在农村,你的父母是辛勤劳作的农民")strong += 1face -= 1elif point == 2:print("你出生在穷乡僻壤,你的父母是无业游民")home -= 1else: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)

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 += 1else:if gender == 'gril':info += '你经常被别的小朋友欺负!'strong -= 1else:info += '你经常和别的小朋友打架!'strong -= 1iq -= 1#体质触发事件elif strong <=6 and 1 <= point <3:info += '你生了一场大病.'if home >=5:info += '在家人的悉心照顾下,你的病痊愈了.'strong += 1home -= 1else:info += '你的父母没精力管你,你的身体状况更糟糕了.'strong -= 1# 智力触发事件elif iq <=4:info += '你看起来傻傻的.'if home >=8 and age >=6:info += '你的父母把你送到更好的学校学习.'iq += 1elif 4 <= home <=7:if gender == 'boy':info += '你的父母鼓励你多运动,争取成为运动员.'strong += 1else:info += '你的父母鼓励你多打扮自己.'face += 1else:info += '你的父母经常因为你而争吵.'if point == 1:strong -= 1elif point == 2:iq -= 1else:pass# 健康成长else:info += '你健康成长.'if point == 1:strong += 1info += '你变的更结实了.'elif point == 2:face += 1info += '你变的更好看了.'else:# 无事发生passprint(info)print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")print("------------------------------------")time.sleep(1)

五.后记

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

六.源代码

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("------------------------------------")continueif strong < 1 or strong > 10:print("体质设置有误!")print("------------------------------------")continueif iq < 1 or iq > 10:print("智力设置有误!")print("------------------------------------")continueif home < 1 or home > 10:print("家境设置有误!")print("------------------------------------")continueif 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 += 1face += 1home += 1
elif 7 <= home <= 9:# 第二档if point == 1:print("你出生在大城市,你的父母是企业高管")home += 2elif point == 2:print("你出生在大城市,你的父母是公务员")face += 2else:print("你出生在大城市,你的父母是大学教授")iq += 2
elif 4 <= home <=6:#第三档if point == 1:print("你出生在三线城市,你的父母是老师")iq += 1if point == 2:print("你出生在三线城市,你的父母是医生")face += 1if point == 3:print("你出生在镇上,你的父母是个体户")home += 1
else:#第四档if point == 1:print("你出生在农村,你的父母是辛勤劳作的农民")strong += 1face -= 1elif point == 2:print("你出生在穷乡僻壤,你的父母是无业游民")home -= 1else: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 += 1else:if gender == 'gril':info += '你经常被别的小朋友欺负!'strong -= 1else:info += '你经常和别的小朋友打架!'strong -= 1iq -= 1#体质触发事件elif strong <=6 and 1 <= point <3:info += '你生了一场大病.'if home >=5:info += '在家人的悉心照顾下,你的病痊愈了.'strong += 1home -= 1else:info += '你的父母没精力管你,你的身体状况更糟糕了.'strong -= 1# 智力触发事件elif iq <=4:info += '你看起来傻傻的.'if home >=8 and age >=6:info += '你的父母把你送到更好的学校学习.'iq += 1elif 4 <= home <=7:if gender == 'boy':info += '你的父母鼓励你多运动,争取成为运动员.'strong += 1else:info += '你的父母鼓励你多打扮自己.'face += 1else:info += '你的父母经常因为你而争吵.'if point == 1:strong -= 1elif point == 2:iq -= 1else:pass# 健康成长else:info += '你健康成长.'if point == 1:strong += 1info += '你变的更结实了.'elif point == 2:face += 1info += '你变的更好看了.'else:# 无事发生passprint(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 += 1else:if home <=4 and point == 1:info += '但是家庭困难,你无法兼顾家庭和学习,最终体育天赋被埋没,放弃中考辍学回家'strong -= 2iq -= 1elif home >= 8 and iq >= 6:info += '你的家人在学习和体育方面着重培养你,最终进入重点高中'home -= 1iq += 1strong += 1#智力触发事件elif iq >= 6:info += '你的学习成绩中等,'if age == 18 and 4<= face <=7 and point == 3:info += '且小有姿色,在高三这年你和他人谈恋爱,导致学习成绩下滑,'iq -= 2if home >= 8:info += '你的父母选择把你送出国深造'home -= 2iq += 1elif 5 <= home <7:info += '最终去了民办二本'home -= 1else:info += '你的家庭负担不起民办费用,最终你去了大专'elif home >= 5 and 1 <= point <3:info += '家里人请老师给你补课,学习成绩有所提升'iq += 1else:if point == 1:info += '你的成绩提高了'iq += 1elif point == 2:info += '你的成绩没变'else:info += '你的成绩更好了,身体素质也有所提高'iq += 1strong += 1# 健康成长事件else:info += '你健康成长,'if point == 1:info += '你的学习成绩提高了'iq += 1elif point == 2:info += '你变得更好看了'face += 1else:passprint(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 -= 1iq += 1elif 4 <= home < 6 and point == 2 :info += '你获得了保研资格'iq += 1elif home <4:info += '为了补贴家里,大学期间你天天逃课兼职,毕业困难'iq -= 1else:info += '你和往常一样过着平淡的日子'else:info += '你和许多普通人一样,每天朝九晚五'if point == 1:info += ',你升职了'home += 1elif point == 2:info += ',你被开除了'home -= 1else:passprint(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 += 1if strong < 4 :info += ',你重病缠身,即将不久于世'print('游戏结束!')sys.exit(0)else:info += ',你老当益壮,每天强身健体'if point == 1:strong += 1else:info += '你平淡的过完这一生'print(info)print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")print("------------------------------------")time.sleep(1)
http://www.dtcms.com/a/392544.html

相关文章:

  • CSS基础查缺补漏(持续更新补充)
  • 用户生命周期价值(CLV)目标变量系统性设计与实践(二)
  • TDengine 与工业应用平台 Ignition 集成
  • JVM垃圾收集中判断对象存活相关问题
  • 【C++】告别“类型转换”踩坑,从基础到四种核心强制转换方式
  • WinDivert学习文档之五-————编程API(八)
  • 【LVS入门宝典】LVS NAT模式深度解析:流量走向与IP包头修改机制
  • 第二章 微调:定制专属模型——从通用能力到场景适配
  • 为统信UOS2.0离线安装python3.11.9开发环境
  • Maven 进阶:依赖管理的 “坑” 与解决方案
  • 2.15Vue全家桶-VueRouter
  • 五、Maven引入
  • 通过 TypeScript 在 Vue 3 中利用类型系统优化响应式变量的性能
  • Maven 入门:从 “手动导包” 到 “自动化构建” 的第一步
  • 【Python】数组
  • AI任务相关解决方案18-基于大模型、MCP、Agent与RAG技术的数据分析系统研究报告
  • 飞牛NAS系统版本重大更新:支持挂载115网盘!挂载教程来袭!
  • SpringAI、Dify与Ollama的技术落地与协作
  • Python Selenium 核心技巧与实战:从基础操作到极验滑动验证码破解
  • PyQt6 实战:多源输入 ASCII 艺术转换器全解析(图片 / 视频 / 摄像头实时处理 + 自定义配置)
  • Java 大视界 —— Java 大数据在智能农业病虫害精准识别与绿色防控中的创新应用
  • Qt qDebug()调试函数,10分钟讲清楚
  • Go语言基于 DDD(Domain Driven Design)领域驱动设计架构实现备忘录 todolist
  • Go基础:Go变量、常量及运算符详解
  • c++如何开发游戏
  • 3D体素(Voxel)算法原理内容综述
  • 家庭劳务机器人进化史:从单一功能到全能管家的四阶跃迁
  • 【工具推荐及使用】——基于pyecharts的Pythpn可视化
  • Transformer实战(19)——微调Transformer语言模型进行词元分类
  • ModelView【QT】