<>介绍
“人生重开模拟器”,这是一款文字类小游戏,在百度也可以直接搜到各种网页版本。
玩家输入角色的初始属性之后,就可以开启不同的人生经历。
这里只是简单的实现一下(不然代码量太多)
<>1. 设置初始属性
在游戏中我们设定4个属性
* 颜值(face)
* 体质(strong)
* 智力(iq)
* 家境(home)
我们约定每个属性的范围为[1,10],并且4个属性的总和不能超过20.
如果玩家输入的值有误,或者超过就重新输入
# 设置属性值 while True: print('请依次输入,颜值、体质、智力、家境(总和不能超过20)') count = 20 face = int(
input('请输入颜值0~10: ')) if face < 1 or face > 10 or face > 20: print('设置的值违规')
continue count -= face strong = int(input('请输入体质0~10: ')) if strong < 1 or
strong> 10 or strong > count: print('设置的值违规') continue count -= strong iq = int(
input('请输入智力0~10: ')) if iq < 1 or iq > 10 or iq > count: print('设置的值违规')
continue count -= iq home = int(input('请输入家境0~10: ')) if home < 1 or home > 10
or home > count: print('设置的值违规') continue if face + strong + iq + home <= 20:
print('属性设置完成,随机生成性别...') break else: print('属性值设置错误总和不能超过20')
<>2. 设置性别
通过random.randint(1,6)的随机整数,类似于色子
* 如果生成的是奇数就是男孩
* 如果生成的是偶数就是女孩
* 男孩和女孩会遇到不同的事件. # 随机生成性别 sex = random.randint(1, 6) if sex % 2 == 0: sex =
'girl' print('游戏开始你是一个女孩') else: sex = 'boy' print('游戏开始你是一个男孩')
<>3. 设置出生点
首先按照家境(home),分成4个档次
* 10 是第一档,加成最高
* [7,9] 为第二档,也有一些加成
* [4,6] 为第三档,加成较少
* [1,3] 是第四档,会扣掉属性
再生成[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('你出生在三线城市,你的父母是老师') iq += 1 elif point == 2: print('你出生在镇上,你的父母是医生')
strong+= 1 else: print('你出生在镇上,你的父母是个体户') home += 1 else: if point == 1: print(
'你出生在村里,你的父母是辛苦劳作的农民') strong += 1 face -= 2 elif point == 2: print(
'你出生在穷乡僻壤,你的父母是无业游民') home -= 1 else: print('你出生在镇上,你父母感情不和') strong -= 1
<>4. 针对每一岁生成人生经历
按照年龄, 把人生经历分成四个阶段:
* 幼年阶段 [1, 10]
* 青少年阶段 [11, 25]
* 壮年阶段 [25, 50]
* 老年阶段 50 岁以上.
每个阶段都会有不同的精力和事件发生.
* 幼年阶段可塑性强, 体质, 颜值, 智力都会有较快变化
* 青年阶段主要是求学, 同时父母一辈会有明显变化, 智力和家境会有明显变化.
* 壮年阶段相对平稳, 属性变化不大, 主要是一些随机事件影响到属性.
* 老年阶段体质, 颜值, 智力都会显著退化, 并且随着年龄的上升, 疾病/死亡的风险逐渐升高.
此处我们以幼年为例, 简单实现一下这里的处理逻辑.
* 使用 for 循环, 按照年龄循环起来.
* 针对每一年, 随机生成1~3的数字, 根据不同的随机数值, 来触发不同的事件.
* 根据性别, 年龄, 各种属性, 来触发不同的事件. 这里都使用 if - else 的方式来组织.
* 不同的事件可能会对属性有正面/负面的影响.
* 在每一年的最后, 打印这一年遇到的事情.
* 如果夭折, 则直接 sys.exit(0) 退出程序.
* 使用 time.sleep(2) 使程序暂停执行 2s, 方便观察程序结果. # 生成人生经历 for age in range(1, 60):
info= f'你今年{age}岁' point = random.randint(1, 3) # 触发性别事件 if sex == '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 if strong <= 0: print('你没有战胜病魔去世了') sys.exit
(0) # 颜值触发事件 elif face < 4 and age >= 7: info += '你因为长的丑,遭到别的小朋友嫌弃,' if iq > 5:
info+= '你决定用学习填充自己' iq += 1 else: if sex == 'boy': info += '你和别的小朋友经常打架' iq -= 1
strong+= 1 else: info += '你经常被别的小朋友欺负' strong -= 1 # 智商触发事件 elif iq < 5: info
+= '你看起来傻傻的,' if home >= 8 and age >= 6: info += '你的父母给你送到更好的学习学习' iq += 1 elif
4 <= home <= 7: if sex == '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'颜值={face},体质={strong},智力={iq},家境={home}') time.sleep(2)