write in front
大家好,我是Aileen★。希望你看完之后,能对你有所帮助,不足请指正!共同学习交流
本文由 Aileen_0v0★ 原创 CSDN首发 如需转载还请通知⚠
个人主页:Aileen_0v0★—CSDN博客
欢迎各位→点赞 + 收藏⭐️ + 留言​
系列专栏:Aileen_0v0★的PYTHON学习系列专栏——CSDN博客
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本

游戏页面

游戏结果

游戏实现思路

现在我们利用python进行编程实现一个简化版的人生重开模拟器

1.游戏开始的时候,设定初始属性~

颜值,体质,智力,家庭

2.开始游戏,随机生成性别和出生点~

3.针对每一年,都生成人生的经历~~(依靠一定的随机因素+当前角色的属性)

1.游戏开始的时候,设定初始属性~

# 人生重开模拟器 ~print("+--------------------------------------+")print("||")print("| ❀有重开日,人无再少年 |")print("||")print("| 欢迎来到,人生重开模拟器 |")print("||")print("+--------------------------------------+")# 设置初始属性# 颜值,体质,智力,家境,总和不能超过20,每一项取值都是1-10之间# 使用循环,使玩家在输入错误的时候,可以重新输入.while True:print("请设置初始属性(可用点数为20)")face = int(input("请输入颜值(1-10):"))strong = int(input("请输入体质(1-10):"))iq = int(input("请输入智力(1-10):"))home = int(input("请输入家境(1-10):"))#通过条件语句,对于用户的属性进行校验检查#这段逻辑,使用elif是否可以呢" /> 10:print("体质设置有误!")continueif iq10:print("智商设置有误!")continueif home10:print("家境设置有误!")continueif face+strong+iq+home > 20:print("总的属性超过20,也是设置有误!")continue#如果当前上面的条件没有被触发,则认为玩家输入的数据是合法的#此时就可以跳出循环,结束输入print("初始属性输入完毕")print(f"颜值{face},体质{strong},智商{iq},家境{home}")break

2.开始游戏,随机生成性别和出生点~

#随机生成角色性别#使用 random.randint(beg,end),就能生成[beg,end]随机整数import randompoint=random.randint(1,6)#print(f"point={point}")#假设单数为男,双数为女if point % 2==1:gender="boy"print("你是个男孩")else:gender="girl"print("你是个女孩")#设定角色出生点#为了简单,就直接生成1-3的随机数point = random.randint(1,3)if home ==10:#第一档print("你出生在帝都,你的父母都是高官政要")home += 1iq += 1face += 1elif 7 <= home <= 9:#第二档if point == 1:print("你出生在大城市,父母是公务员")face += 2elif point == 2:print("你出生在大城市,父母是企业高管")home += 2else:print("你出生在大城市,父母是大学教授")iq+=2elif 4 <= home <=6:#第三档if point == 1:print("你出生在三线城市,你的父母是医生")strong += 1elif point == 2:print("你出生在镇上,你的父母是老师")iq +=1else:print("你出生在镇上,你的父母是个体户")home+=1else:#第四档if point == 1:print("你出生在农村,父母是辛苦劳作的农民")strong += 1face -= 2elif point == 2:print("你出生在穷乡僻壤,你的父母是无业游民")home -= 1else:print("你出生在镇上,你的父母感情不和")strong -=1print(f"颜值:{face},体质:{strong},智商:{iq},家境:{home}")

注意:实现一个游戏的时候,很多时候,游戏本身涉及到的逻辑,并不复杂~~但是游戏中一些具体的数据,数值平衡,是非常复杂的!!—>有兴趣的小伙伴也可以用其它方式进行划分

补充:在python中,如果想引入其它模块,需先使用import语句,把模块的名字给”导入进来”~

PyCharm来说,有一个功能能够自动导入当前使用的模块~

random.randint此处的random是一个python中的模块!—>别人写好的代码,直接给我们来用~

使用别人模块的优点:

  1. 节省开发时间和成本:使用别人的模块可以避免自己从零开始编写功能,减少开发时间和成本。

  2. 降低开发风险:已有的模块已经经过测试和验证,可以减少出现错误的风险。

  3. 增加代码质量和可维护性:使用别人的模块可以避免自己编写的代码出现问题,提高代码质量和可维护性。

  4. 加速项目进度:使用别人的模块可以加速项目进度,使项目更快地完成。

  5. 提升开发效率:使用别人的模块可以避免重复劳动,提高开发效率。

3.针对每一年,都生成人生的经历~~(依靠一定的随机因素+当前角色的属性)

人生阶段及特点
幼年阶段 [1,10]可塑性强~
青年阶段 [11,20]求学阶段~
壮年阶段 [20,50] 平稳~
老年阶段 50岁以上颜值,体质和智力显著退化~(游戏结束)

幼年阶段~

先使用一个循环,按照年龄,从1循环到10

针对每一年,都生成一个随机数~[1,3]

根据角色,性别,年龄,各种属性,触发各种事件,随机数会对事件的结果造成影响~

这里的事件可能会对属性带来变更~ ~

每一年执行结束,都打印这一年发生的事件(让每年只发生一个事件)

也可能会遇到 夭折 的情况~~使用exit函数来结束程序~ ~

sys是system的缩写,也是python内部提供的一个模块~ 功能是退出程序,一般括号里写0即可~
#幼年阶段for age in range(1,11):#把一整年的打印都整理到一个字符串中,在这一年的结尾统一打印info = f"你今年{age}岁."# 生成一个 [1,3] 的随机整数.point = random.randint(1,3)# 接下来编写各种事件的代码# 性别触发的事件if gender=="girl" and home <= 3 and point == 1:info += '你的家里人重男轻女思想非常严重,你被遗弃了!'print(info)print("游戏结束!")import syssys.exit(0)#sys是system的缩写,也是python内部提供的一个模块~ ~功能是退出程序,一般括号里写0即可# 体质触发的事件# 使用 elif 是为了保证每年只触发一个事件!elif strong < 6 and point = 5:info +="在你父母的悉心照料下,你康复了"strong += 1home -= 1else:info += "你的父母没精力管你.你的身体状况更糟糕了"strong -= 1# 颜值触发的事件elif face = 7:info += "你长得太丑了,别的小朋友不喜欢你."if iq > 5:info += "你决定用学习填充自己!"iq += 1else:if gender == "boy":info += "你和别的小朋友经常打架!"strong += 1iq -= 1else:info += "你经常被别的小朋友欺负!"strong -= 1# 智商触发的事件elif iq = 8 and age >= 6:info += "你的父母把你送到更好的学校学习"iq += 1elif 4 <= home <= 7:if gender == "boy":info += "你的父母鼓励你多运动,争取成为运动员"strong += 1else:info += "你的父母鼓励你多打扮自己"face += 1else:# 家境 < 4info += "你的父母为此经常吵架"if point == 1:strong -= 1elif point == 2:iq -=1else:pass# 健康成长事件else:info += "你健康成长."if point == 1:info += "你看起来更结实了."strong += 1elif point == 2:info += "你看起来更好看了."face += 1else:# 无事发生pass# 打印这一年发生的事情print(info)print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")print("------------------------------------------------")#为了方便观察,加一个小小的暂停操作import timetime.sleep(1)#time 也是python提供的模块#sleep 的功能就是让程序暂停一会,再继续执行 1就是1秒

此处只写了幼年阶段,青年,中年,老年也是类似的,由于时间问题,就暂时写到这里.

游戏总体代码:

# 人生重开模拟器 ~print("+--------------------------------------+")print("||")print("| ❀有重开日,人无再少年 |")print("||")print("| 欢迎来到,人生重开模拟器 |")print("||")print("+--------------------------------------+")# 设置初始属性# 颜值,体质,智力,家境,总和不能超过20,每一项取值都是1-10之间# 使用循环,使玩家在输入错误的时候,可以重新输入.while True:print("请设置初始属性(可用点数为20)")face = int(input("请输入颜值(1-10):"))strong = int(input("请输入体质(1-10):"))iq = int(input("请输入智力(1-10):"))home = int(input("请输入家境(1-10):"))#通过条件语句,对于用户的属性进行校验检查#这段逻辑,使用elif是否可以呢" /> 10:print("体质设置有误!")continueif iq10:print("智商设置有误!")continueif home10:print("家境设置有误!")continueif face+strong+iq+home > 20:print("总的属性超过20,也是设置有误!")continue#如果当前上面的条件没有被触发,则认为玩家输入的数据是合法的#此时就可以跳出循环,结束输入print("初始属性输入完毕")print(f"颜值{face},体质{strong},智商{iq},家境{home}")break#随机生成角色性别#使用 random.randint(beg,end),就能生成[beg,end]随机整数import randompoint=random.randint(1,6)#print(f"point={point}")#假设单数为男,双数为女if point % 2==1:gender="boy"print("你是个男孩")else:gender="girl"print("你是个女孩")#设定角色出生点#为了简单,就直接生成1-3的随机数point = random.randint(1,3)if home ==10:#第一档print("你出生在帝都,你的父母都是高官政要")home += 1iq += 1face += 1elif 7 <= home <= 9:#第二档if point == 1:print("你出生在大城市,父母是公务员")face += 2elif point == 2:print("你出生在大城市,父母是企业高管")home += 2else:print("你出生在大城市,父母是大学教授")iq+=2elif 4 <= home <=6:#第三档if point == 1:print("你出生在三线城市,你的父母是医生")strong += 1elif point == 2:print("你出生在镇上,你的父母是老师")iq +=1else:print("你出生在镇上,你的父母是个体户")home+=1else:#第四档if point == 1:print("你出生在农村,父母是辛苦劳作的农民")strong += 1face -= 2elif point == 2:print("你出生在穷乡僻壤,你的父母是无业游民")home -= 1else:print("你出生在镇上,你的父母感情不和")strong -=1print(f"颜值:{face},体质:{strong},智商:{iq},家境:{home}")#幼年阶段for age in range(1,11):#把一整年的打印都整理到一个字符串中,在这一年的结尾统一打印info = f"你今年{age}岁."# 生成一个 [1,3] 的随机整数.point = random.randint(1,3)# 接下来编写各种事件的代码# 性别触发的事件if gender=="girl" and home <= 3 and point == 1:info += '你的家里人重男轻女思想非常严重,你被遗弃了!'print(info)print("游戏结束!")import syssys.exit(0)#sys是system的缩写,也是python内部提供的一个模块~ ~功能是退出程序,一般括号里写0即可# 体质触发的事件# 使用 elif 是为了保证每年只触发一个事件!elif strong < 6 and point = 5:info +="在你父母的悉心照料下,你康复了"strong += 1home -= 1else:info += "你的父母没精力管你.你的身体状况更糟糕了"strong -= 1# 颜值触发的事件elif face = 7:info += "你长得太丑了,别的小朋友不喜欢你."if iq > 5:info += "你决定用学习填充自己!"iq += 1else:if gender == "boy":info += "你和别的小朋友经常打架!"strong += 1iq -= 1else:info += "你经常被别的小朋友欺负!"strong -= 1# 智商触发的事件elif iq = 8 and age >= 6:info += "你的父母把你送到更好的学校学习"iq += 1elif 4 <= home <= 7:if gender == "boy":info += "你的父母鼓励你多运动,争取成为运动员"strong += 1else:info += "你的父母鼓励你多打扮自己"face += 1else:# 家境 < 4info += "你的父母为此经常吵架"if point == 1:strong -= 1elif point == 2:iq -=1else:pass# 健康成长事件else:info += "你健康成长."if point == 1:info += "你看起来更结实了."strong += 1elif point == 2:info += "你看起来更好看了."face += 1else:# 无事发生pass# 打印这一年发生的事情print(info)print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")print("------------------------------------------------")#为了方便观察,加一个小小的暂停操作import timetime.sleep(1)#time 也是python提供的模块#sleep 的功能就是让程序暂停一会,再继续执行 1就是1秒

游戏效果图:

游戏如此,人生如此,愿我们都健健康康,幸福快乐!


游戏到这就结束了,人生还在继续,感谢大家的支持!❀