游戏页面
游戏结果
游戏实现思路 现在我们利用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是否可以呢?--->完全可以,效果是相同的. | |
#使用elif则是多个分支只能进行一个,一旦某个条件满足了,就不会再走其他的分支了. | |
#此处虽然没有使用elif,但是有了 continue,一旦某个条件满足,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 |
2.开始游戏,随机生成性别和出生点~
#随机生成角色性别 | |
#使用 random.randint(beg,end),就能生成[beg,end]随机整数 | |
import random | |
point=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 += 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("你出生在三线城市,你的父母是医生") | |
strong += 1 | |
elif point == 2: | |
print("你出生在镇上,你的父母是老师") | |
iq +=1 | |
else: | |
print("你出生在镇上,你的父母是个体户") | |
home+=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}") |
注意:实现一个游戏的时候,很多时候,游戏本身涉及到的逻辑,并不复杂~~但是游戏中一些具体的数据,数值平衡,是非常复杂的!!--->有兴趣的小伙伴也可以用其它方式进行划分
补充:在python中,如果想引入其它模块,需先使用import语句,把模块的名字给"导入进来"~
PyCharm来说,有一个功能能够自动导入当前使用的模块~
random.randint此处的random是一个python中的模块!--->别人写好的代码,直接给我们来用~ 使用别人模块的优点:
- 节省开发时间和成本:使用别人的模块可以避免自己从零开始编写功能,减少开发时间和成本。
- 降低开发风险:已有的模块已经经过测试和验证,可以减少出现错误的风险。
- 增加代码质量和可维护性:使用别人的模块可以避免自己编写的代码出现问题,提高代码质量和可维护性。
- 加速项目进度:使用别人的模块可以加速项目进度,使项目更快地完成。
- 提升开发效率:使用别人的模块可以避免重复劳动,提高开发效率。
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 sys | |
sys.exit(0) | |
#sys是system的缩写,也是python内部提供的一个模块~ ~功能是退出程序,一般括号里写0即可 | |
# 体质触发的事件 | |
# 使用 elif 是为了保证每年只触发一个事件! | |
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 >= 8 and age >= 6: | |
info += "你的父母把你送到更好的学校学习" | |
iq += 1 | |
elif 4 <= home <= 7: | |
if gender == "boy": | |
info += "你的父母鼓励你多运动,争取成为运动员" | |
strong += 1 | |
else: | |
info += "你的父母鼓励你多打扮自己" | |
face += 1 | |
else: | |
# 家境 < 4 | |
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: | |
# 无事发生 | |
pass | |
# 打印这一年发生的事情 | |
print(info) | |
print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}") | |
print("------------------------------------------------") | |
#为了方便观察,加一个小小的暂停操作 | |
import time | |
time.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是否可以呢?--->完全可以,效果是相同的. | |
#使用elif则是多个分支只能进行一个,一旦某个条件满足了,就不会再走其他的分支了. | |
#此处虽然没有使用elif,但是有了 continue,一旦某个条件满足,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 | |
#随机生成角色性别 | |
#使用 random.randint(beg,end),就能生成[beg,end]随机整数 | |
import random | |
point=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 += 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("你出生在三线城市,你的父母是医生") | |
strong += 1 | |
elif point == 2: | |
print("你出生在镇上,你的父母是老师") | |
iq +=1 | |
else: | |
print("你出生在镇上,你的父母是个体户") | |
home+=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}岁." | |
# 生成一个 [1,3] 的随机整数. | |
point = random.randint(1,3) | |
# 接下来编写各种事件的代码 | |
# 性别触发的事件 | |
if gender=="girl" and home <= 3 and point == 1: | |
info += '你的家里人重男轻女思想非常严重,你被遗弃了!' | |
print(info) | |
print("游戏结束!") | |
import sys | |
sys.exit(0) | |
#sys是system的缩写,也是python内部提供的一个模块~ ~功能是退出程序,一般括号里写0即可 | |
# 体质触发的事件 | |
# 使用 elif 是为了保证每年只触发一个事件! | |
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 >= 8 and age >= 6: | |
info += "你的父母把你送到更好的学校学习" | |
iq += 1 | |
elif 4 <= home <= 7: | |
if gender == "boy": | |
info += "你的父母鼓励你多运动,争取成为运动员" | |
strong += 1 | |
else: | |
info += "你的父母鼓励你多打扮自己" | |
face += 1 | |
else: | |
# 家境 < 4 | |
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: | |
# 无事发生 | |
pass | |
# 打印这一年发生的事情 | |
print(info) | |
print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}") | |
print("------------------------------------------------") | |
#为了方便观察,加一个小小的暂停操作 | |
import time | |
time.sleep(1) | |
#time 也是python提供的模块 | |
#sleep 的功能就是让程序暂停一会,再继续执行 1就是1秒 |
游戏效果图:
游戏如此,人生如此,愿我们都健健康康,幸福快乐!
游戏到这就结束了,人生还在继续,感谢大家的支持!❀