Python---人生重开模拟器(简版)

Python---人生重开模拟器(简版)该文章介绍了如何使用 Python 实现一个简单的人生重开模拟器 包括属性初始化 性别随机设置 出生点的影响以及按年龄生成不同的人生经历

专栏:python
个人主页:HaiFan.
专栏简介:本专栏主要更新一些python的基础知识,也会实现一些小游戏和通讯录,学时管理系统之类的,有兴趣的朋友可以关注一下。


思维导图

在这里插入图片描述

前言

前面我们已经学了python中的顺序,选择,循环语句以及break和continue的使用,下面根据这几个语句,来讲解一个代码案例


一、设置初始属性

  1. 颜值(face)
  2. 体质(strong)
  3. 智力(iq)
  4. 家境(home)

1.游戏标题

在这里可以先把游戏的标题打印在开头

print("") print(" ") print(" 人生重开模拟器 ") print(" ") print(" 花有重开日 人无在少年 ") print(" ") print("") 

在这里插入图片描述

2.属性的初始化

这四个属性可以由玩家自己输入,这就用到了之前讲到的input函数,通过这个函数,来完成属性的初始化。

 print("请设置初始属性(可用属性值:20)") face = int(input("设定颜值(1-10)")) iq = int(input("设定智力(1-10)")) strong = int(input("设定体质(1-10)")) home = int(input("设定家境(1-10)")) 

这样就完成了属性的输入,这样并不完善,前面我们已经约定过了,属性不得超过多少,总和不得超过多少,所以下面要用我们学到过的if-elif-else语句,对这四个属性和总和进行判断。

 if face < 1 or face > 10: print("颜值设置错误") continue elif iq < 1 or iq > 10: print("智力设置错误") continue elif strong < 1 or strong > 10: print("体质设置错误") continue elif home < 1 or home > 10: print("家境设置错误") continue elif face + iq + strong + home > 20: print("总属性超过20") continue print("初始属性设置完毕") print(f"颜值:{ 
     face},体质:{ 
     strong},智力:{ 
     iq},家境:{ 
     home}") 

每当某一个属性不符合的时候,就把原因打印的屏幕上并重新输入属性值,如果符合约定,则把四个属性值打印在屏幕上。


当某个判断出现错误的时候,代码会直接结束程序,而不会让玩家循环输出,这是因为缺少了一个循环,那么我们就要设置一个能够使得属性初始化但不符合约定,就要让玩家重新输入属性值的功能。这个时候就用到了while循环

while True: print("请设置初始属性(可用属性值:20)") face = int(input("设定颜值(1-10)")) iq = int(input("设定智力(1-10)")) strong = int(input("设定体质(1-10)")) home = int(input("设定家境(1-10)")) if face < 1 or face > 10: print("颜值设置错误") continue elif iq < 1 or iq > 10: print("智力设置错误") continue elif strong < 1 or strong > 10: print("体质设置错误") continue elif home < 1 or home > 10: print("家境设置错误") continue elif face + iq + strong + home > 20: print("总属性超过20") continue print("初始属性设置完毕") print(f"颜值:{ 
     face},体质:{ 
     strong},智力:{ 
     iq},家境:{ 
     home}") 

当所有判断都满足约定的时候,就不能在继续循环了,要结束程序,这个时候就break就派上了用场,满足判定,直接跳出while循环。

在上面这个代码尾部加上break即可注意break的位置要缩进

在这里插入图片描述

二、设置性别

设置性别是一个有意思的话题,性别一定要做到随机,设置随机数就用到了一个函数random.randint,这个函数是python中自带的模块,使用前要先调用一下这个模块import random
通过 random.randint(1,6)可以生成一个1-6的随机整数。

  1. 如果是单数:男孩
  2. 如果是双数:女孩

男孩女孩会遇到不同的事件。

point = random.randint(1,6) # print(f'随机数为:{point}') if point % 2 == 1: gender = "boy" print("你是个男孩.") else: gender = "girl" print("你是个女孩.") 

在这里插入图片描述

三、设置出生点

首先按照家境可以把出生点分为4部分

  1. 10是第一部分,家境最好,加成也最高
  2. 7-9第二部分,也有一些加成
  3. 4-6第三部分,加成较少
  4. 1-4第四部分,会扣掉属性

当然,大家在自己写的时候,可以多写几个部分,让游戏充满更多的可能。


然后,在生成1-3之间的随机数,每一个数字代表一种情况。

point = random.randint(1,3) if home == 10: #第一部分 print("你出生在帝都,父母是世界首富.") home += 1 face += 1 iq += 1 elif home >= 7 and home <=9: #第二部分 if point == 1: print("你出生在一线城市,父母是医生.") face += 2 elif point == 2: print("你出生在一线城市,父母是资深程序员.") iq += 2 else: print("你出生在一线城市,父母是健身教练.") strong += 3 face += 1 iq -= 1 elif home >= 4 and home <= 6: #第三部分 if point == 1: print("你出生在三线城市,父母是企业管理.") iq += 1 elif point == 2: print("你出生在三线城市,父母是小学老师.") iq += 1 else: print("你出生在三线城市,父母是自己开店做生意.") home += 1 else: #第四部分 if point == 1: print("你出生在农村,父母是农民.") strong += 2 face -= 1 elif point == 2: print("你出生在山里,父母是猎人.") strong += 2 home -= 1 face -= 1 else: print("你出生在小镇上,父母是镇长.") face += 1 home += 1 print(f"颜值:{ 
     face},体量:{ 
     strong},智力:{ 
     iq},家境:{ 
     home}") 

四、针对每一岁,自动生成人生经历

按照年龄可以把人生分为四个截断

  1. 幼年
  2. 青年
  3. 壮年
  4. 老年

每个截断会有不同的事情发生,也可能会有一些机遇。
例如:幼年截断,智力,颜值,体质等会发生变化,在这里可以展开事件的发生。
此处只写幼年经历:
因为是每一年,可以用for循环展开,把每一年的经历,用字符串进行拼接,循环到最后,输出字符串即可,针对事件的发生,可以用随机数,根据数字来发生事件,也可以根据性别,颜值,体质等来触发事件,不同的事件有不同的影响,如果得病去世,可以直接用sys.exit(0)退出程序,使用time.sleep(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("游戏结束.") 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 += '你和别的小朋友打架.' 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: 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("---------------------------------------------------------------") time.sleep(1) 

在这里插入图片描述

在这里插入图片描述

总结(附代码)

在这里,并不把四个截断全部写完,只写一个幼年阶段。把这一篇文章看完,相信大家有能力自行实现后续内容,让游戏变得更完整。

注:在使用sys.exit和time.sleep的时候别忘了调用一下
import sys
import time

""" 人生重开模拟器 花有重开日,人无在少年 """ import random import sys import time print("") print(" ") print(" 人生重开模拟器 ") print(" ") print(" 花有重开日 人无在少年 ") print(" ") print("") while True: print("请设置初始属性(可用属性值:20)") face = int(input("设定颜值(1-10)")) iq = int(input("设定智力(1-10)")) strong = int(input("设定体质(1-10)")) home = int(input("设定家境(1-10)")) if face < 1 or face > 10: print("颜值设置错误") continue elif iq < 1 or iq > 10: print("智力设置错误") continue elif strong < 1 or strong > 10: print("体质设置错误") continue elif home < 1 or home > 10: print("家境设置错误") continue elif face + iq + strong + home > 20: print("总属性超过20") continue print("初始属性设置完毕") print(f"颜值:{ 
     face},体质:{ 
     strong},智力:{ 
     iq},家境:{ 
     home}") 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 face += 1 iq += 1 elif home >= 7 and home <=9: if point == 1: print("你出生在一线城市,父母是医生.") face += 2 elif point == 2: print("你出生在一线城市,父母是资深程序员.") iq += 2 else: print("你出生在一线城市,父母是健身教练.") strong += 3 face += 1 iq -= 1 elif home >= 4 and home <= 6: if point == 1: print("你出生在三线城市,父母是企业管理.") iq += 1 elif point == 2: print("你出生在三线城市,父母是小学老师.") iq += 1 else: print("你出生在三线城市,父母是自己开店做生意.") home += 1 else: if point == 1: print("你出生在农村,父母是农民.") strong += 2 face -= 1 elif point == 2: print("你出生在山里,父母是猎人.") strong += 2 home -= 1 face -= 1 else: print("你出生在小镇上,父母是镇长.") face += 1 home += 1 print(f"颜值:{ 
     face},体量:{ 
     strong},智力:{ 
     iq},家境:{ 
     home}") 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("游戏结束.") 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 += '你和别的小朋友打架.' 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: 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("---------------------------------------------------------------") time.sleep(1) 
今天的文章 Python---人生重开模拟器(简版)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-31 10:21
下一篇 2024-12-31 10:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/97892.html