目录
[1. 设置初始属性](#1. 设置初始属性)
[2. 设置性别](#2. 设置性别)
[3. 设置出生点](#3. 设置出生点)
前言:当编程遇见人生!
在数字世界的无限可能中,我们常常思考:如果人生能够重来,会是什么样子?这个古老而迷人的命题,如今我们可以通过编程来探索和体验。
学习编程不仅仅是掌握一门技能,更是一种创造力的释放。当我们熟练掌握了Python的基础知识------那些循环、条件判断、函数调用和随机数生成的核心概念后,我们就拥有了创造虚拟世界的能力。这个"人生重开模拟器"小游戏,正是将冰冷的代码与温暖的人生故事完美结合的典范。
这个看似简单的文字游戏,背后蕴含着深刻的哲学思考:我们的命运究竟由什么决定?是先天属性,还是后天选择?是随机事件,还是必然规律?通过编写和体验这个模拟器,我们不仅是在练习编程技巧,更是在以程序员的视角审视人生的复杂性与可能性。
网络上流传的各种版本的人生重开模拟器,每一个都是创作者对人生的独特理解。从基础的属性分配到复杂的事件系统,从线性的生命历程到分支众多的叙事网络,这些不同版本展现了编程世界的多样性和创造性。今天,我们将从最基础的版本开始,一步步构建属于自己的命运模拟器。
更多相关内容,详见博主主页! 浩瀚星河2023-CSDN博客
综合案例:人生重开模拟器(普通版)
在学习完Python的基础知识,我们就可以尝试自己使用基础知识当中的循环、控制、调用库函数等重要知识点来实现 "人生重开模拟器"的普通版本!
这是一款之前很火的文字类小游戏. 玩家输入角色的初始属性之后, 就可以开启不同的人生经历. 大家可以在网上搜索 "人生重开模拟器", 就可以玩到这个游戏的各种版本.
下边就是一个网站关于多个版本的人生重开模拟器的,大家有兴趣的可以去尝试一下!
https://zhidao.baidu.com/question/530551461866605045.html
具体的版本图片博主就不一个一个展示了,大家可以点击网址自行查找游玩!
完整的程序代码较多, 此处我们只实现其中的一部分逻辑.后续博主会实现更加完善的代码设计,当然想要真正的完成一个人生重开模拟器的游戏,我们需要学习的还有很多,博主后续更新的升级版博客也是相对而言的,并且还会持续更新当中的!请尽情期待吧!
**1.**设置初始属性
首先,人生嘛,离不开几个方面,基础的方面我们就设计四个好了,比如:
1.颜值 (face)
2.体质 (strong)
3.智力 (iq)
4.家境 (home)
5.......(升级版可以继续添加!)
我们约定每个方面或者说是一个人的属性的范围为 [1, 10], 并且总和不能超过 20.
如果玩家输入的初始属性不合理, 就提示输入有误, 重新输入
具体的代码如下所示:
python
# Life Reborn Simulator ordinary
# 人生重开模拟器(普通版)
import random
import sys
import time
# 如果学习过Python的GUI页面,也可尝试使用GUI页面进行编写代码,使其更加美观一些
# 当然真正的写一个比较好的页面,可以尝试QT或者是网页常用的HTML\CSS\JavaScript\Vue3等语言来写!都是比较好的!这里比较适合新手!
print("+---------------------------------------------------------------------+")
print("| |")
print("| 花有重开日,人无再少年 |")
print("| |")
print("| 欢迎来到,人生重开模拟器 |")
print("| |")
print("+---------------------------------------------------------------------+")
# 设置初始属性
while True:
print("请设定初始属性(可用总点数 20)")
face = int(input("设定 颜值(1-10):"))
strong = int(input("设定 体质(1-10):"))
iq = int(input("设定 智力(1-10):"))
home = int(input("设定 家境(1-10):"))
# 如果这里5种条件,只要有一个不满足就会打印错误信息!具体逻辑可以通过调试进行测试!
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("初始属性设定完成!")
break
我们可以运行测试一下:如果符合我们设置的规则:
如果不符合我们设置的规则:
(一共有5种情况,这里我只列出其中的一种哈,剩下的大家可以自己回去尝试一下!)
**2.**设置性别
第二,人生嘛,无非男女之别(其他的不考虑哈!),我们需要设计性别,当然,在这里是随机的,但是升级版等各种版本当中其实也是可以选择的,但是这里仅供参考!我们就写最为基础的随机的即可!
通过 random.randint(1, 6) 生成一个 [1, 6] 的随机整数, 类似于掷色子.(这是一个库函数的使用,详细的库函数的使用等知识可以查看博主的博客或者是在下述的网站中查找! )
https://www.runoob.com/python3/python3-tutorial.html
1.如果是单数, 则性别设为男孩
2.如果是双数, 则性别设为女孩.
男孩和女孩会遇到不同的事件,每个人的人生都是不一样的嘛!
python
# 设置性别
# 调用库函数,生成指定范围内的随机数!
point = random.randint(1, 6) # 掷色子
if point % 2 == 1:
gender = 'boy'
print("你是个男孩")
else:
gender = 'girl'
print("你是个女孩")
我们可以将上述代码放到第一个代码的后边进行测试,部分测试结果如下:

通过上述的图片运行结果,我们可以看到,这次我们随机的是一个女孩子!当然我们还可以随机成为男孩子,这些都是随机的!
**3.**设置出生点
第三,人生嘛,出生也是一个分水岭,有人生在罗马,有人生在去罗马的路上,开个玩笑哈,不管怎样,人生不过三万天,活出属于你自己的精彩!
按照家境(home), 分成四个档位.(当然升级版当中可以设置的更加细节一些!)
10 是第一档. 加成最高
[7, 9] 是第二档. 也有一些加成
[4, 6] 是第三档. 加成较少
[1, 3] 是第四档. 会扣掉属性.
再扔一次色子, 生成 [1, 3] 的随机数, 用来表示每一种细分情况.
(细分情况这里也就是三种小的情况,在升级版里面,可以加上各种情况,毕竟每个人的人生每天的事情不是完全一模一样的!我们每天都有很多的变化!)
这里的代码主要就是各种 if else 构成.(还记得循环语句的知识嘛?如果不记得那么可需要好好复习联系哦!)
python
# 设置出生点
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('你出生在三线城市, 你的父母是教师')
iq += 1
elif point == 2:
print('你出生在镇上, 你的父母是医生')
strong += 1
else:
print("你出生在镇上, 你的父母是个体户")
home += 1
else:
if 1 <= point <= 2:
print('你出生在村里, 你的父母是辛苦劳作的农民')
strong += 1
face -= 2
elif 3 <= point <= 4:
print('你出生在穷乡僻壤, 你的父母是无业游民')
home -= 1
else:
print('你出生在镇上, 你父母感情不和')
strong -= 1
我们依旧可以把上述的代码放到之前的代码当中去测试一下,例如下述的部分程序测试:
我们可以看到根据你初始属性的不同,我们最后得出的测试结果也是不一样的!在普通版当中,我们的基础属性还是有一些限制的条件的,但是升级版我们可以根据需求的不同来根据我们的所学知识进行调整!
4. 针对每一岁 , 生成人生经历
最后,人生总有结束的时候,我们普通版模拟四个阶段,但是人生又不是只有四个阶段,我们在升级版中可以畅想自己的人生阶段,不仅仅是对编程能力的提升,也是对自己人生的畅想和对自己这一人生的思考和感受!
我们普通版当中是按照年龄, 把人生经历分成下边的四个阶段:
1.幼年阶段 [1, 10]
2.青年阶段 [11, 20]
3.壮年阶段 [20, 50]
4.我们老年阶段 50 岁以上.
每个阶段都会有不同的精力和事件发生.
1.幼年阶段可塑性强, 体质, 颜值, 智力都会有较快变化
2.青年阶段主要是求学, 同时父母一辈会有明显变化, 智力和家境会有明显变化.
3.壮年阶段相对平稳, 属性变化不大, 主要是一些随机事件影响到属性.
4.老年阶段体质, 颜值, 智力都会显著退化, 并且随着年龄的上升, 疾病/死亡的风险逐渐升高.一般到了老年阶段,人生重开模拟器差不多也就到了程序的尾声!
此处我们以幼年为例, 简单实现一下这里的处理逻辑.
1.使用 for 循环, 按照年龄循环起来.
2.针对每一年, 先掷一次 [1, 3] 的色子, 根据不同的随机数值, 来触发不同的事件.
3.根据性别, 年龄, 各种属性, 来触发不同的事件. 这里都使用 if - else 的方式来组织.
4.不同的事件可能会对属性有正面/负面的影响.
5.在每一年的最后, 打印这一年遇到的事情.
6.如果夭折, 则直接 sys.exit(0) 退出程序.
7.使用 time.sleep(1) 使程序暂停执行 1s, 方便我们观察程序的运行结果.
python
# 针对每一岁, 生成人生经历
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 += '你和别的小朋友经常打架'
iq -= 1
strong += 1
else:
info += '你经常被别的小朋友欺负'
strong -= 1
# 智商触发的事件
elif iq < 5:
info += '你看起来傻傻的, '
if home >= 8 and age >= 6:
info += '你的父母给你送到更好的学校学习'
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:
info += '看起来更聪明了'
iq += 1
elif point == 2:
info += '看起来更好看了'
face += 1
else:
info += '看起来更结实了'
strong += 1
print('-------------------------------------------')
print(info)
print(f'strong={strong}, face={face}, iq={iq}, home={home}')
time.sleep(1)
我们依旧将上述代码放到前边三个代码的后边,然后我们运行程序就可以进行对应代码的测试了!
通过上述的运行测试我们可以看到,实际代码的运行和你的初始设计的属性是有关系的,这样就需要你从全局的层面把控整个代码的运行情况,比如真正的人生当中,也会有一些我们难于预料的意外和机遇,这个时候,我们是否可以在代码当中使用随机的方式来实现呢?当然除此之外,我们还有很多的情况都可以考虑进去,只要想法不断,那么就会不断地扩充和完善你的代码逻辑,最终实现一个很好的小游戏设计!
当然除了幼年,我们还有更多的逻辑, 但是此处博主就不再一一进行实现了. 大家可以按照类似的方式, 设计更多的事件, 完成 青年, 壮年, 老年 的相关逻辑.也可以添加一下更加广阔的功能设计!当然博主还会继续进行升级版的设计,并且专门出一个博客讲述升级版的人生重开模拟器!大家敬请期待!希望大家能从我的博客当中学到不少的知识!我们一起加油!
4.全部的代码总结
以下内容便是本次人生重开模拟器的全部代码,因为普通版的功能不是很多,代码量也是比较少的,但是随着功能的不断完善和扩充,后续的代码量还是不少的!
python
# Life Reborn Simulator ordinary
# 人生重开模拟器(普通版)
import random
import sys
import time
# 如果学习过Python的GUI页面,也可尝试使用GUI页面进行编写代码,使其更加美观一些
# 当然真正的写一个比较好的页面,可以尝试QT或者是网页常用的HTML\CSS\JavaScript\Vue3等语言来写!都是比较好的!这里比较适合新手!
print("+---------------------------------------------------------------------+")
print("| |")
print("| 花有重开日,人无再少年 |")
print("| |")
print("| 欢迎来到,人生重开模拟器 |")
print("| |")
print("+---------------------------------------------------------------------+")
# 设置初始属性
while True:
print("请设定初始属性(可用总点数 20)")
face = int(input("设定 颜值(1-10):"))
strong = int(input("设定 体质(1-10):"))
iq = int(input("设定 智力(1-10):"))
home = int(input("设定 家境(1-10):"))
# 如果这里5种条件,只要有一个不满足就会打印错误信息!具体逻辑可以通过调试进行测试!
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("初始属性设定完成!")
break
# 设置性别
# 调用库函数,生成指定范围内的随机数!
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('你出生在帝都, 你的父母是高官政要')
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('你出生在三线城市, 你的父母是教师')
iq += 1
elif point == 2:
print('你出生在镇上, 你的父母是医生')
strong += 1
else:
print("你出生在镇上, 你的父母是个体户")
home += 1
else:
if 1 <= point <= 2:
print('你出生在村里, 你的父母是辛苦劳作的农民')
strong += 1
face -= 2
elif 3 <= point <= 4:
print('你出生在穷乡僻壤, 你的父母是无业游民')
home -= 1
else:
print('你出生在镇上, 你父母感情不和')
strong -= 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 += '你和别的小朋友经常打架'
iq -= 1
strong += 1
else:
info += '你经常被别的小朋友欺负'
strong -= 1
# 智商触发的事件
elif iq < 5:
info += '你看起来傻傻的, '
if home >= 8 and age >= 6:
info += '你的父母给你送到更好的学校学习'
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:
info += '看起来更聪明了'
iq += 1
elif point == 2:
info += '看起来更好看了'
face += 1
else:
info += '看起来更结实了'
strong += 1
print('-------------------------------------------')
print(info)
print(f'strong={strong}, face={face}, iq={iq}, home={home}')
time.sleep(1)
结语:代码之外的人生思考
完成这个基础版本的人生重开模拟器,只是我们编程之旅的一个起点,也是我们对人生理解的一个新视角。在代码的世界里,我们可以无数次重来,无数次尝试不同的可能性,但现实生活却是一条单行道,每一个选择都塑造着独一无二的人生轨迹。
这个小游戏留给我们的,不仅仅是编程技能的提升,更是对生命价值的深刻思考。当我们通过代码模拟不同的人生路径时,我们或许会更加珍惜现实中的每一次机会,更加理解那些看似偶然实则必然的人生转折。
编程如人生,人生亦如编程。在编程中,我们学会调试错误、优化算法、重构代码;在生活中,我们同样需要反思过去、规划未来、调整方向。两者都需要耐心、智慧和勇气。
随着技术的进步和学习的深入,我们将能够创造更加复杂、更加真实的模拟器------加入更多属性维度,设计更丰富的事件系统,甚至引入机器学习算法来生成更加合理的人生轨迹。但无论技术如何发展,这个基础版本永远是我们理解复杂系统的起点。
记住,每一次代码的运行,都是对可能性的一次探索;每一次人生的选择,都是对命运的一次塑造。让我们带着从编程中学到的系统思维和创造性解决问题的能力,不仅在虚拟世界中模拟人生,更在现实世界中活出精彩。
愿你的代码没有bug,愿你的人生充满惊喜!我们下次博客再见!