对于之前所学的知识我们可以去做一个简单的小程序,人生重开模拟器,相信大家都有所了解。我们只需要用到基本的条件以及循环语句就可以简单实现。
我们可以使用简单的打印函数打印一个界面
我们对初始的数据进行输入
但是我们要知道,用户万一手一抖,输错了怎么办,不带重新输入么?怎么重新输入呢?怎么判断呢?
我们选择while循环去解决重新输入的问题,然后我们使用条件语句去判断条件,在什么什么条件下我们选择跳出这次循环进行下次循环,直到所有的数据都输入正确。
之后我们就可以跳出循环了
完成初始属性的设置后,我们进行性别的设置,性别就两个,但是我们是随机生成性别,所以我们要随机生成一些数,对这些数进行判断从而来进行性别的设置。
这时候我们可以使用random.randint(beg,end),他是一个库里的函数,它生成随机数的范围是[beg,end],他会生成这个范围之间的随机整数。
我们使用这个库里的函数我们要用import来进行引用,但是我们的pycharm会在我们写完这个函数是自动帮我们再最上面生成相对应的引用。
我们可以看一下所生成的随机数
随后我们可以用奇数偶数来进行性别的判断,我们可以去保存性别,后面可以用不同性别经历不同的事件。
我们再设置出生点的时候,会选择对家境分档,再不同档位则有不同的家境,并在不同档位进行加成或者衰减。
- 10 是第一档. 加成最高
- [7, 9] 是第二档. 也有一些加成
- [4, 6] 是第三档. 加成较少
- [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 1 <= point <= 2:
print('你出生在村里, 你的父母是辛苦劳作的农民')
strong += 1
face -= 2
elif 3 <= point <= 4:
print('你出生在穷乡僻壤, 你的父母是无业游民')
home -= 1
else:
print('你出生在镇上, 你父母感情不和')
strong -= 1
然后我们就该开始每一年怎么怎么样,这不就是循环结构么,我们吧人生分成四个阶段,幼年阶段 [1, 10] ,青年阶段 [11, 20] ,壮年阶段 [20, 50] ,老年阶段 50 岁以上。不同阶段对应不同的事件。
我们先来分析一下逻辑:
使用 for 循环, 按照年龄循环起来。
- 针对每一年, 先掷一次 [1, 3] 的色子, 根据不同的随机数值, 来触发不同的事件。
- 根据性别, 年龄, 各种属性, 来触发不同的事件。
- 这里都使用 if - else 的方式来组织. 不同的事件可能会对属性有正面/负面的影响。
- 在每一年的最后, 打印这一年遇到的事情。
- 如果夭折, 则直接 sys.exit(0) 退出程序。
- 使用 time.sleep(1) 使程序暂停执行 1s, 方便观察程序结果。
好,思路就是这个思路,具体的我们看代码
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)
我们还可以写出更多的逻辑,使这个游戏更加的丰富,当然我们也学习了三个库的的函数,我们再私下的学习也可以多加使用。
下面是运行结果,很显然是我写的情况较少,并且开局数值并不极端导致的,大家可以自己多写点玩玩。那么更多的情况我就不罗列了。