人生重开模拟器是一款文字类小游戏. 玩家可根据提示输入角色的初始属性之后, 就可以开启不同的人生经历. 具体可以网上搜索“人生重启模拟器”,就能找到这款游戏的许多版本。
1.菜单栏的编写
菜单栏的编写是整个项目最简单的地方,只需要用到print函数
# 首先打印一个菜单栏 print('-----------------------------------------') print('| 花有重开日,人无再少年 |') print('| |') print('| 欢迎来到人生重开模拟器 |') print('-----------------------------------------')
2.玩家确定颜值、体质、智力、家境
首先我们定义四个变量,使用input函数进行输入,然后通过int转换为数字值
face = int(input("请输入你的颜值:")) strong = int(input("请输入你的体质:")) iq = int(input("请输入你的智商")) home = int(input("请输入你的家境:"))
因为我们要求这四个属性值需要1-10,这四个值总和不超过20。所以需要用到循环条件判断,和break和continue语句
# 接下来,创建颜值,体质,智力,家境 # 这四个属性值都要在1-10之间,总和不要超过20 while True: print("请输入你的属性值") face = int(input("请输入你的颜值:")) strong = int(input("请输入你的体质:")) iq = int(input("请输入你的智商:")) home = int(input("请输入你的家境:")) # 如果单个属性值超过10,提示用户重新输入 if (face > 10 or face < 1): print("颜值输入错误,请重新输入") continue if (strong > 10 or strong < 1): print("体质输入错误,请重新输入") continue if (iq > 10 or iq < 1): print("智商输入错误,请重新输入") continue if (home > 10 or home < 1): print("家境输入错误,请重新输入") continue if (face + strong + iq +home > 20): print("属性值总和错误,请重新输入") continue print("颜值:",face, "体质:",strong,"智商:",iq,"家境:",home)
3.生成性别
random模块可以生成一个随机数
random.randint(beg,end)# 可以生成【beg,end】的随机数
#接下来生成角色性别 # 使用random可以生成随机数 point = random.randint(1,3) if point == 1: gender = '男' print("你是男孩") elif point == 2: gender = '女' print("你是一个女孩") else: gender = '男娘' print("你是一个小男娘")
4.设定角色出生点
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("你出生在三线城市,你父母是个体户") home +=1 elif point == 2: print("你出生在三线城市,你父母是医生") face += 1 else: print("你出生在三线城市,你父母是教师") iq += 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}")
5.各个年龄段的变化
5.1 幼年阶段
# 幼年阶段 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}') print('---------------------------------------------') # 为了方便观察, 加一个sleep time.sleep(2)
5.2 青年阶段
# 青年阶段 for age in range(11, 21): info = f'你今年{age}岁, ' point = random.randint(1, 3) # 教育触发的事件 if iq >= 7 and point == 1: info += '你在学校表现突出, 被选为班长!' if gender == 'boy': strong += 1 else: face += 1 elif iq < 5 and point == 2: info += '你的学习成绩不理想, 需要更多努力' if gender == 'boy': strong -= 1 else: face -= 1 # 职业选择事件 elif age >= 16: if iq >= 8 and strong >= 7: info += '你的学业成就优秀, 获得了奖学金, 考上了理想的大学!' iq += 1 strong += 1 elif iq < 5 and strong < 5: info += '你无法考上理想的大学, 面临职业选择困难' if gender == 'boy': strong -= 1 else: face -= 1 else: info += '你选择了一份普通的工作, 开始了职业生涯' # 情感生活事件 elif age >= 18: if point == 1: info += '你谈了一场甜蜜的恋爱, 与心爱的人交往中' if gender == 'boy': strong += 1 else: face += 1 elif point == 2: info += '你的恋爱关系出现了问题, 面临分手' if gender == 'boy': strong -= 1 else: face -= 1 # 健康成长事件 else: info += '你在青年阶段健康成长, ' if point == 1: info += '你继续保持健康的体魄' strong += 1 elif point == 2: info += '你外貌更加成熟美好' face += 1 else: info += '这一阶段没有特别的事情发生' # 打印这一年发生的事情 print(info) print(f'颜值: {face}, 体制: {strong}, 智力: {iq}, 家境: {home}') print('---------------------------------------------') # 加入延迟以模拟事件发生 time.sleep(2)
5.3中年阶段
# 中年阶段 for age in range(21, 61): info = f'你今年{age}岁, ' point = random.randint(1, 3) # 职业发展事件 if age >= 21 and age <= 40: if iq >= 8 and strong >= 7: info += '你在职场上取得了显著成就, 获得了晋升!' iq += 1 strong += 1 home += 1 elif iq < 5 and strong < 5: info += '你在职场上遇到了挑战, 需要调整策略' iq -= 1 strong -= 1 home -= 1 else: info += '你的职业生涯稳步发展' # 家庭生活事件 elif age >= 25: if point == 1: info += '你的家庭生活幸福美满' home += 1 elif point == 2: info += '你的家庭出现了一些小矛盾, 需要沟通解决' home -= 1 # 健康问题 if age > 40: if point == 1: info += '你开始注重健康, 定期进行体检' strong += 1 elif point == 2: info += '你遇到了健康问题, 需要及时治疗' strong -= 1 # 退休生活准备 if age >= 55: info += '你开始考虑退休生活, 准备享受晚年' home += 1 # 打印这一年发生的事情 print(info) print(f'颜值: {face}, 体制: {strong}, 智力: {iq}, 家境: {home}') print('---------------------------------------------') # 加入延迟以模拟事件发生 time.sleep(2)
5.4 晚年阶段
# 晚年阶段 for age in range(61, 81): info = f'你今年{age}岁, ' point = random.randint(1, 3) # 退休生活事件 if age >= 61: if point == 1: info += '你开始享受退休生活, 生活变得悠闲' home += 1 elif point == 2: info += '你开始感到无聊, 需要找点事情做' home -= 1 # 健康问题 if age > 70: if point == 1: info += '你开始注重健康, 定期进行体检' strong += 1 elif point == 2: info += '你遇到了健康问题, 需要及时治疗' strong -= 1 # 打印这一年发生的事情 print(info) print(f'颜值: {face}, 体制: {strong}, 智力: {iq}, 家境: {home}') print('---------------------------------------------') print("你这一生结束了") print(f'颜值: {face}, 体制: {strong}, 智力: {iq}, 家境: {home}') # 加入延迟以模拟事件发生 time.sleep(2)
6.整体代码
# 人生重开模拟器 import random import time import sys # 首先打印一个菜单栏 print('-----------------------------------------') print('| 花有重开日,人无再少年 |') print('| |') print('| 欢迎来到人生重开模拟器 |') print('-----------------------------------------') # 接下来,创建颜值,体质,智力,家境 # 这四个属性值都要在1-10之间,总和不要超过20 while True: print("请输入你的属性值") face = int(input("请输入你的颜值:")) strong = int(input("请输入你的体质:")) iq = int(input("请输入你的智商:")) home = int(input("请输入你的家境:")) # 如果单个属性值超过10,提示用户重新输入 if (face > 10 or face < 1): print("颜值输入错误,请重新输入") continue if (strong > 10 or strong < 1): print("体质输入错误,请重新输入") continue if (iq > 10 or iq < 1): print("智商输入错误,请重新输入") continue if (home > 10 or home < 1): print("家境输入错误,请重新输入") continue if (face + strong + iq +home > 20): print("属性值总和错误,请重新输入") continue print("颜值:",face, "体质:",strong,"智商:",iq,"家境:",home) break #接下来生成角色性别 # 使用random可以生成随机数 point = random.randint(1,3) if point == 1: gender = '男' print("你是男孩") elif point == 2: gender = '女' print("你是一个女孩") else: gender = '男娘' print("你是一个小男娘") # 设置角色出生点 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("你出生在三线城市,你父母是个体户") home +=1 elif point == 2: print("你出生在三线城市,你父母是医生") face += 1 else: print("你出生在三线城市,你父母是教师") iq += 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}") # 人生正式开始 # 幼年阶段 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}') print('---------------------------------------------') # 为了方便观察, 加一个sleep time.sleep(2) # 青年阶段 for age in range(11, 21): info = f'你今年{age}岁, ' point = random.randint(1, 3) # 教育触发的事件 if iq >= 7 and point == 1: info += '你在学校表现突出, 被选为班长!' if gender == 'boy': strong += 1 else: face += 1 elif iq < 5 and point == 2: info += '你的学习成绩不理想, 需要更多努力' if gender == 'boy': strong -= 1 else: face -= 1 # 职业选择事件 elif age >= 16: if iq >= 8 and strong >= 7: info += '你的学业成就优秀, 获得了奖学金, 考上了理想的大学!' iq += 1 strong += 1 elif iq < 5 and strong < 5: info += '你无法考上理想的大学, 面临职业选择困难' if gender == 'boy': strong -= 1 else: face -= 1 else: info += '你选择了一份普通的工作, 开始了职业生涯' # 情感生活事件 elif age >= 18: if point == 1: info += '你谈了一场甜蜜的恋爱, 与心爱的人交往中' if gender == 'boy': strong += 1 else: face += 1 elif point == 2: info += '你的恋爱关系出现了问题, 面临分手' if gender == 'boy': strong -= 1 else: face -= 1 # 健康成长事件 else: info += '你在青年阶段健康成长, ' if point == 1: info += '你继续保持健康的体魄' strong += 1 elif point == 2: info += '你外貌更加成熟美好' face += 1 else: info += '这一阶段没有特别的事情发生' # 打印这一年发生的事情 print(info) print(f'颜值: {face}, 体制: {strong}, 智力: {iq}, 家境: {home}') print('---------------------------------------------') # 加入延迟以模拟事件发生 time.sleep(2) # 中年阶段 for age in range(21, 61): info = f'你今年{age}岁, ' point = random.randint(1, 3) # 职业发展事件 if age >= 21 and age <= 40: if iq >= 8 and strong >= 7: info += '你在职场上取得了显著成就, 获得了晋升!' iq += 1 strong += 1 home += 1 elif iq < 5 and strong < 5: info += '你在职场上遇到了挑战, 需要调整策略' iq -= 1 strong -= 1 home -= 1 else: info += '你的职业生涯稳步发展' # 家庭生活事件 elif age >= 25: if point == 1: info += '你的家庭生活幸福美满' home += 1 elif point == 2: info += '你的家庭出现了一些小矛盾, 需要沟通解决' home -= 1 # 健康问题 if age > 40: if point == 1: info += '你开始注重健康, 定期进行体检' strong += 1 elif point == 2: info += '你遇到了健康问题, 需要及时治疗' strong -= 1 # 退休生活准备 if age >= 55: info += '你开始考虑退休生活, 准备享受晚年' home += 1 # 打印这一年发生的事情 print(info) print(f'颜值: {face}, 体制: {strong}, 智力: {iq}, 家境: {home}') print('---------------------------------------------') # 加入延迟以模拟事件发生 time.sleep(2) # 晚年阶段 for age in range(61, 81): info = f'你今年{age}岁, ' point = random.randint(1, 3) # 退休生活事件 if age >= 61: if point == 1: info += '你开始享受退休生活, 生活变得悠闲' home += 1 elif point == 2: info += '你开始感到无聊, 需要找点事情做' home -= 1 # 健康问题 if age > 70: if point == 1: info += '你开始注重健康, 定期进行体检' strong += 1 elif point == 2: info += '你遇到了健康问题, 需要及时治疗' strong -= 1 # 打印这一年发生的事情 print(info) print(f'颜值: {face}, 体制: {strong}, 智力: {iq}, 家境: {home}') print('---------------------------------------------') print("你这一生结束了") print(f'颜值: {face}, 体制: {strong}, 智力: {iq}, 家境: {home}') # 加入延迟以模拟事件发生 time.sleep(2)