一、角色初始属性设置
在游戏中设定四个属性:颜值(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("颜值设置有误!")
continue
if strong < 1 or strong > 10:
print("体质设置有误!")
continue
if iq < 1 or iq > 10:
print("智力设置有误!")
continue
if home < 1 or home > 10:
print("家境设置有误!")
continue
if face + strong + iq + home > 20:
print("总点数超过了 20!")
continue
print("初始属性设置完成!")
print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
break
二、初始性别设置
通过 random.randint() 生成 1~6 的随机数,单数为男孩,双数为女孩。
import random
point = random.randint(1, 6) # 单数为男,双数为女
if point % 2 == 1:
gender = 'boy'
print("你是个男孩")
else:
gender = "girl"
print("你是个女孩")
三、设置出生点
根据家境(home)分成四档,不同档位对应不同的属性加成或扣除情况。使用 random.randint 生成 1~3 随机数进行细分,主要用 if-elif-else 结构完成。
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
elif point == 2:
print("你出生在三线城市,你的父母是医生")
face += 1
else:
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 循环按年龄循环,根据性别、年龄、颜值等属性触发不同事件。每年末打印事件,使用 time.sleep(1) 暂停程序 1s 便于观察结果。若夭折,直接 sys.exit(0) 退出程序。
import sys
import time
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 face <= 3 and age >= 7:
info += '你长得太丑了,别的小朋友都不喜欢你.'
if iq > 5:
info += '你决定学习知识来填充自己.'
iq += 1
else:
if gender == 'girl':
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:
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] 使用的逻辑和童年阶段一致,不同的是每年触发的事件。对于事件发生的逻辑不够完整,需用户自行调整完善。
六、源代码
import random
import sys
import time
# 打印欢迎界面
print("+--------------------------------+")
print("| |")
print("| 花有重开日,人无再少年 |")
print("| |")
print("| 欢迎来到人生重开模拟器 |")
print("| |")
print("+--------------------------------+")
# 设置初始属性
while True:
print("请设定初始属性 (总点数为 20)")
try:
face = int(input("设定 颜值 (1-10):"))
strong = int(input("设定 体质 (1-10):"))
iq = int(input("设定 智力 (1-10):"))
home = int(input("设定 家境 (1-10):"))
except ValueError:
print("请输入整数!")
continue
if face < 1 or face > 10:
print("颜值设置有误!")
continue
if strong < 1 or strong > 10:
print("体质设置有误!")
continue
if iq < 1 or iq > 10:
print("智力设置有误!")
continue
if home < 1 or home > 10:
print("家境设置有误!")
continue
if face + strong + iq + home > 20:
print("总点数超过了 20!")
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
elif point == 2:
print("你出生在三线城市,你的父母是医生")
face += 1
else:
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 == 'girl' 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 == 'girl':
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:
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)
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)

