Python-------实现人生重开模拟器

server/2024/9/25 7:42:15/

人生重开模拟器

  • 实现思路
  • 序言
  • 一、设置初始属性
    • 1.游戏标题
    • 2.属性初始化
  • 二、设置角色性别
  • 三、设置角色出生点
  • 四、针对每一年的岁数,自动生成人生经历
  • 总结

实现思路

1.设置初始属性
2.设置角色性别
3.设置角色出生点
4.针对每一年的岁数,自动生成人生经历

序言

在前面学习Python的过程中,我们学习了顺序,选择和循环语句,也学到了有关continue和break的使用,因此,我们依靠这些知识,来完成一个简单的"小游戏"

一、设置初始属性

相信大家在网上也看到过这款游戏,这款游戏有四个属性,分别是:

    1. 颜值(Face)          2. 体力(Strong)3. 家境(Home)          4. 智商(IQ)

因此在这里,我们要规定属性的范围以及四个属性之和不能超过我们所规定的范围
所以在这,我们假设规定它们的属性都是在1 ~ 10的范围之内,其总和不超过20。

1.游戏标题

在游戏的开头,我们可以先打印个标题供给玩家看:

在这里插入图片描述
在这里插入图片描述

2.属性初始化

这四个属性由玩家自己输入,由于我们之前学习过input函数,因此在此处,使用input函数来帮我们完成初始化操作
在这里插入图片描述

到这里,虽然完成了属性的初始化操作,但是不够完善。由于玩家的操作使我们意料不到的,因此我们还得设置每个属性值的范围以及超出范围之后打印提示信息的操作。所以这项操作就要使用ifelif语句了

在这里插入图片描述

当我们在某个属性发生错误时,错误信息会直接打印在屏幕上面,程序会直接结束,而不会让玩家重新输入。为了让玩家能够重新输入属性值的功能,我们就要用到循环的操作语句-----while循环

在这里插入图片描述
在这里插入图片描述
注意 : 代码块的缩进

如果以上条件都没有被触发,就可以说明玩家输入的数据是符合规定的,我们就可以再次打印每个属性的信息,然后跳出循环,继续执行后续操作。

在这里,细心地同学会看到这里的代码怎么都是使用if语句,怎么没有使用elif语句呢?其实这里使用elif语句也是完全可以的。但这里需要注意的是 : 使用elif语句则是多个分支只能进一个,一旦某个条件满足了,就不会再走其它分支了。

在我们这段代码里,虽然没有使用elif语句,但是我们使用了continue语句,一旦某个条件满足,continue 就会使循环从头再来,也就没有机会继续去执行后续的条件判定了.

二、设置角色性别

因为我们不能提前知道玩家的性别,所以我们设置性别随机。在此处又需要使用到一个函数 : random.randint ,通过这个函数,我们就能过生成1 ~ 6的随机数。

注: 在这里插入图片描述

我们假设规定: 如果是单数,就为男孩。反之,则为女孩。

在这里插入图片描述

三、设置角色出生点

我们假设按照家境这一属性,将出生点分为四个档位

  1. 当 Home = 10 时为第一档,此时家境最好,属性加成最高
  2. 当 Home = 7 ~ 9 时为第二档,此时有部分属性加成
  3. 当 Home = 4 ~ 6 时为第三档,此时属性的加成较少
  4. 当 Home = 1 ~ 3 时为第四档,此时会扣除部分属性值

当然,也可以加多几部分,让这小游戏有更高的可玩度

然后生成1 ~ 3的随机数,每一种数字代表一种情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在选则完后,打印角色的相关属性

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

按照年龄,我们可以将角色分为四个阶段:

        1.幼年[1,10]         2.青年[11,20]3.壮年[20,50]        4.老年 50岁以上

每个阶段都有可能会产生不一样的事件,也可能出现一些机遇.
例如: 在这段代码中,我们只写了幼年这一阶段.因为我们要打印每一年所发生的事件,因此需要使用for循环,通过字符串拼接,不断循环,最后输出字符串即可。在针对事件的发生,我们既可以使用随机数,根据所产生的数字代表该事件的发生,也可以根据性别、颜值、体质等来触发相关事件.由于每一种事件会产生不一样的影响,如果发生夭折等突然去世的情况时,我们可以使用 sys.exit(0) 退出程序,然后为了方便观察,再加上一个暂停的操作-------time.sleep(1)

python"># 幼年阶段
for age in range(1,11):# 把一整年的打印都整理到一个字符串中,在这一年的结尾统一打印info = f'你今年{age}岁.'#生成一个[1,3]的随机整数point = random.randint(1,3)# 接下来编写各种事件的代码#使用elif是为了保证每一次只触发一个事件!# 性别触发的事件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 += 1Home -= 1else:info += '你的父母没精力管你,你的身体状况更糟糕了.'Strong -= 1# 颜值触发的事件elif Face <= 4 and age >= 7:info += '你长得太丑了,别人不喜欢你.'if IQ >= 5:info += '你决定用学习填充自己.'IQ += 1else:if gender == 'boy':info += '你和别的小朋友进场打架!'Strong += 1IQ -= 1else:info += '你经常被别的小朋友欺负!'Strong -= 1#通过智商触发的事件elif IQ < 5:info += '你看起来傻傻的.'if Home >= 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}, 家境: {Home}, 智力: {IQ}")print('----------------------------------------------------')#为了方便观察,加一个小小的暂停操作time.sleep(1)

:在这里使用sys.exit 和 time.sleep的时候,需要先使用important语句,将模块的名字"导入"进来.

在这里插入图片描述

总结

写到这里,相信大家对这款小游戏制作有提升了不少的认识。虽然我们这这里只写了一个幼年阶段,但我相信,只要你们看完这篇文章,一定会有能力继续去实现其余的人生阶段,令游戏变得更加完善。

今天的分享就到这里啦,感谢大家的阅读,我们下次再见 !

See You ~


http://www.ppmy.cn/server/23314.html

相关文章

没想到在vscode里启用vue项目调试这么简单

在 .vscode/lanch.json 中建个Chrome: Lanch配置 然后把url改成项目运行地址 用 npm run dev 把项目启动起来 再按F5启动调试就可以 欢迎关注公众号&#xff1a;清晰编程&#xff0c;获取更多精彩内容

【Linux动态库和静态库】

Linux动态库和静态库 动静态库的基本原理认识动静态库静态库的打包与使用打包使用 动态库的打包与使用打包使用 动静态库的基本原理 静态库原理&#xff1a;  静态库是一组预先编译好的目标文件&#xff08;通常是 .o 文件&#xff09;的集合&#xff0c;它们被打包成一个单独…

Faiss:高效向量搜索引擎的原理与实践

向量搜索在机器学习、数据检索和推荐系统中扮演着至关重要的角色。它能够帮助我们快速找到在大规模数据集中与查询点最接近的数据点。Faiss&#xff08;发音类似于"fess"&#xff09;&#xff0c;是由Facebook AI Research&#xff08;FAIR&#xff09;团队开发的一个…

基于JAVA高考志愿辅助填报系统

当今社会已经步入了科学技术进步和经济社会快速发展的新时期&#xff0c;国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。传统高考志愿辅助填报采取了人工的管理方法&#xf…

粘合聚酰亚胺PI塑料材料使用UV胶的优势有哪些? (三十四)

聚酰亚胺PI难于粘接&#xff0c;在PI粘接方法中使用UV胶粘剂粘接PI的优势有哪些&#xff1f; 聚酰亚胺&#xff08;PI&#xff09;是一种具有耐高低温性能、高绝缘性、耐化性、低热膨胀系数的材料&#xff0c;广泛用于FPC基材和各种耐高温电机电器的绝缘材料。然而&#xff0c;…

基于springboot实现景区民宿预约系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现景区民宿预约系统演示 选题动因 当前的网络技术&#xff0c;软件技术等都具备成熟的理论基础&#xff0c;市场上也出现各种技术开发的软件&#xff0c;这些软件都被用于各个领域&#xff0c;包括生活和工作的领域。随着电脑和笔记本的广泛运用&#xff0c;以…

数据仓库实验二:关联规则挖掘实验

目录 一、实验目的二、实验内容和要求三、实验步骤1、创建数据库和表2、挖掘关联规则&#xff08;1&#xff09;新建一个 Analysis Services 项目 Sales&#xff08;2&#xff09;建立数据源视图&#xff08;3&#xff09;建立挖掘结构 Sales.dmm&#xff08;4&#xff09;部署…

【c++】cpp运算符重载

目录 &#xff08;1&#xff09;什么是运算符重载 &#xff08;2&#xff09;运算符重载的本质是函数调用 &#xff08;3&#xff09;可以与不可以重载的运算符 &#xff08;4&#xff09;单目运算符与双目符重载区别 &#xff08;5&#xff09;双目运算符重载举例 重载操…