返回顶部
首页 > 资讯 > 后端开发 > Python >人生重开模拟器(Python实现)
  • 320
分享到

人生重开模拟器(Python实现)

1024程序员节python开发语言 2023-09-13 09:09:37 320人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

文章目录 人生重开模拟器介绍代码实现打印初始界面设置初始属性设置角色性别设置角色出生点针对每一岁,生成人生经历 人生重开模拟器介绍 人生重开模拟器是由VickScarlet上传至Git

文章目录

人生重开模拟器介绍

人生重开模拟器是由VickScarlet上传至GitHub的一款简单的文字网页游戏。

在这里插入图片描述

玩家点击“立即重开”并设置角色的初始属性后,程序就会随机为玩家生成对应的人生经历。

在这里插入图片描述

代码实现

下面我们实现一个简化版的人生重开模拟器,主要目的在于熟悉python的语法。

打印初始界面

初始界面可以自由发挥,这里博主就随便打印一下。

代码如下:

# 打印初始界面print('+-------------------------------------------+')print('|               |')print('|              >>人生重开模拟器<<              |')print('|               |')print('|            这垃圾人生一秒也不想待了            |')print('|               |')print('+-------------------------------------------+')

设置初始属性

进入游戏后第一步就是设置初始属性,此处设定以下四个属性:

  • 颜值(face)。
  • 体制(strong)。
  • 智力(iq)。
  • 家境(home)。

我们规定每个属性的范围为1 - 10,并且这四个属性的总和不能超过20,如果玩家输入的初始属性不合理,则提示玩家输入有误并要求重新输入。体现在代码中就是,玩家输入属性后通过if语句判断输入的属性是否合法,如果不合法则通过while语句要求玩家重新进行输入。

代码如下:

# 设置初始属性# 颜值、体质、智力、家境(总和不能超过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): '))    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

设置角色性别

关于角色的性别,我们可以随机生成一个1 - 6的整数,类似于掷色子。

  • 如果是单数,则性别设为男孩。
  • 如果是双数,则性别设为女孩。

性别设置后需要借助一个变量将角色的性别保存起来,因为后续男孩和女孩可能会触发不同的事件。

代码如下:

# 设置角色性别point = random.randint(1, 6)if point % 2 == 1:    gender = 'boy'    print('你是个男孩')else:    gender = 'girl'    print('你是个女孩')

说明一下:

  • 代码中使用的randint是random模块中的一个函数,random.randint(begin, end)可以生成一个begin - end之间的随机整数。
  • Python中,如果想引入其他模块,需要以import 模块名的方式将对应的模块导入进来,导入模块后以模块名.xxx的方式就能使用该模块中的函数或变量。

设置角色出生点

设置角色的出生点时,可以根据角色的家境分为四个档位:

  • 10是第一档,加成最高。
  • 7 - 9是第二档,有一些加成。
  • 4 - 6是第三档,加成较少。
  • 1 - 3是第四档,会扣掉属性。

除了将角色的出生点按照家境分为四个档位之外,还可以再生成一个随机数,对每一档的内部再进行一次细分,最终得到角色的出生点,此处涉及的也就是一些if条件判断而已。

代码如下:

# 设置角色出生点point = random.randint(1, 3)if home == 10:    # 第一档    print('你出生在帝都, 你的父母是高官政要')    home += 1    iq += 1    face += 1elif 7 <= home <= 9:    # 第二档    if point == 1:        print('你出生在大城市,父母是公务员')        face += 2    elif point == 2:        print('你出生在大城市,父母是企业高管')        home += 2    else:        print('你出生在大城市,父母是大学教授')        iq += 2elif 4 <= home <= 6:    # 第三档    if point == 1:        print('你出生在三线城市,你的父母是医生')        strong += 1    elif point == 2:        print('你出生在镇上,你的父母是老师')        iq += 1    else:        print('你出生在镇上,你的父母是个体户')        home += 1else:    # 第四档    if point == 1:        print('你出生在农村,父母是辛苦劳作的农民')        strong += 1        face -= 2    elif point == 2:        print('你出生在穷乡僻壤,你的父母是无业游民')        home -= 1    else:        print('你出生在镇上,你的父母感情不和')        strong -= 1print(f'颜值: {face}, 体制: {strong}, 智力: {iq}, 家境: {home}')

说明一下:

  • 角色的出生点不能仅由家境决定,此处在设置角色出生点时引入随机数的目的就是为了增加随机的因素,毕竟人生本来就充满了很多的随机性。
  • 这里的代码只是起一个示意的作用,因此生成随机数的范围只是1 - 3,如果你愿意也可以生成更大范围的随机数,将每一档的内部进行更细粒度的划分,这样就能更大的保证每次运行程序后得到的出生点都是不一样的。

针对每一岁,生成人生经历

人生经历的四个阶段

设置完角色的性别和出生点后,就可以针对每一岁生成对应的人生经历了,这里我们按照年龄将人生经历分为以下四个阶段:

  • 1 - 10岁:幼年阶段。
  • 11 - 20岁:青年阶段。
  • 21 - 50岁:壮年阶段。
  • 50岁以后:老年阶段。

在人生的每个阶段都会有不同的经历和事件发生:

  • 幼年阶段:可塑性强,体制、颜值、智力都会有较快的变化。
  • 青年阶段:主要是求学,同时父母一辈会有明显变化,智力和家境会有明显变化。
  • 壮年阶段:相对平稳,属性变化不大,主要是一些随机事件影响到属性。
  • 老年阶段:体质、颜值、智力都会显著退化,并且随着年龄的上升,疾病和死亡的风险逐渐升高。

这时就可以发挥我们的想象力,编写一些合理的人生经历,并在合适的条件下触发这些事件即可。

人生经历生成

这里我们以幼年为例,简单演示一下处理逻辑:

  • 使用for循环,按照年龄从1循环到10,每次循环生成对应年龄的人生经历。
  • 在生成每一年的人生经历之前,先生成一个随机数(充当人生中的随机因素),根据得到的随机数以及角色的性别、年龄和各种属性来触发不同的事件。
  • 不同的事件被触发后,可能会对角色的属性有正面或负面的影响,因此角色的各个属性会随着事件的触发而不断发生变化。
  • 在这一年的最后打印出所触发的事件,为了方便观察,也可以将这一年后角色的各个属性进行打印。

代码如下:

# 幼年阶段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 += '你和别的小朋友经常打架!'                strong += 1                iq -= 1            else:                info += '你经常被别的小朋友欺负'                strong -= 1    # 智力触发的事件    elif iq < 5:        info += '你看起来傻傻的, '        if home >= 7 and age >= 6:            info += '你的父母把你送到更好的学校学习'            iq += 1        elif 4 <= home <= 6:            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:            info += '这一年没有特别的事情发生'    # 打印这一年发生的事情    print(info)    print(f'颜值: {face}, 体制: {strong}, 智力: {iq}, 家境: {home}')    print('---------------------------------------------')    # 为了方便观察, 加一个sleep    time.sleep(2)

说明一下:

  • 代码中使用的exit是sys模块中的一个函数,如果角色因为触发某些事件而夭折,那么就可以以sys.exit(退出码)的方式让程序直接退出。
  • 代码中使用的sleep是time模块中的一个函数,为了方便观察生成的人生经历,可以以time.sleep(秒数)的方式让程序暂停若干秒。

效果展示

在这里插入图片描述
说明一下:

  • 由于当前代码中编写的人生经历还是比较少的,并且随机数也只是1 - 3,因此生成的人生经历的随机性比较差,并且生成的事件也就那么几个,如果想要让生成的人生经历更加随机更加丰富,就需要将生成随机数的范围调大,并且编写更多的人生经历用于触发。
  • 此外,青年阶段、壮年阶段和老年阶段的人生经历生成方式与幼年阶段相同,这里就不再进行实现了,想象力比较丰富的博友可以自行编写,但博主认为这里的目的是为了熟悉Python的语法,继续编写其他阶段的人生经历的意义不大。

来源地址:https://blog.csdn.net/chenlong_cxy/article/details/127487860

--结束END--

本文标题: 人生重开模拟器(Python实现)

本文链接: https://www.lsjlt.com/news/405700.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 人生重开模拟器(Python实现)
    文章目录 人生重开模拟器介绍代码实现打印初始界面设置初始属性设置角色性别设置角色出生点针对每一岁,生成人生经历 人生重开模拟器介绍 人生重开模拟器是由VickScarlet上传至Git...
    99+
    2023-09-13
    1024程序员节 python 开发语言
  • PYTHON-“人生重开模拟器“
    🚀write in front🚀 🔎大家好,我是Aileen★。希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🆔本文由 Aileen_0v0★...
    99+
    2023-09-14
    python 开发语言 算法 学习 游戏策划
  • 基于Python实现复刻人生重开模拟器
    目录人生重开模拟器介绍代码实现打印初始界面设置初始属性设置角色性别设置角色出生点针对每一岁,生成人生经历人生重开模拟器介绍 人生重开模拟器是由VickScarlet上传至GitHub...
    99+
    2024-04-02
  • <人生重开模拟器>——《Python项目实战》
     目录 1.模拟实现 "人生重开模拟器" 1.1 问题导引: 1.2 问题分析: 2. 模拟实现分析及步骤:  3.完整源码: 4.写在最后的话: 后记:●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教! ...
    99+
    2023-09-06
    python 开发语言 pycharm 经验分享
  • Python实现人生重开模拟器小游戏讲解
    目录思维导图前言一、设置初始属性1.游戏标题2.属性的初始化二、设置性别三、设置出生点四、针对每一岁自动生成人生经历总结(附代码)思维导图 前言 前面我们已经学了python中的顺...
    99+
    2023-01-28
    Python人生重开模拟器 Python模拟器
  • Python项目实战:15行Python代码模拟登陆人人网
    前言今天为大家介绍一个利用Python模拟登陆人人交友网的案例,通过会话请求来登陆,可能没有什么实际的应该的,但是大家来看看这个最简单的案例吧,看看如何做到用这么少的Python代码来实现模拟登陆的导入第三方库...
    99+
    2023-06-02
  • Python实现生活常识解答机器人
    一、问答平台 这个「生活常识解答」机器人采用的是:阿里达摩院发布的语言模型PLUG(最近刚发布的,目前是测试阶段),地址链接如下: https://nlp.aliyun.com/po...
    99+
    2024-04-02
  • Java实现模拟机器人对话的示例代码
    目录前言一、Java多线程的介绍 二、创建线程并运行三、多线程间的交互前言 今天带大家来体验一下Java多线程,首先我们要明白什么是线程?什么是多线程? 进程是指一个内存中...
    99+
    2024-04-02
  • 模拟开户接口,使用python脚本实现批
    1、目的 通过模拟接口方法,实现批量用户开通   2、分析 A、接口含body和head部分,其中body中的某些变量为必填字段,包含用户的信息。 B、用户信息清单可以整理成ott_after_check_device文件。 C、将ott...
    99+
    2023-01-30
    脚本 接口 python
  • Javasocket通信模拟QQ实现多人聊天室
    目录一、socket通信基本原理二、用socket制作一个多人聊天室三、实现效果四、总结一、socket通信基本原理 socket 通信是基于TCP/IP ⽹络层上的⼀种传送⽅式,我...
    99+
    2024-04-02
  • 如何使用Python实现举牌小人生成器
    小编给大家分享一下如何使用Python实现举牌小人生成器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Selenium库的安装与简单使用 1. 安装se...
    99+
    2023-06-15
  • M芯片Mac实现安卓模拟器多开
    写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与...
    99+
    2023-08-16
    macos android 模拟器
  • 使用python模拟浏览器实现登陆
    前言 你有没有想过,当我们在某个网站上登陆时,网站是如何通过验证的,我们都提交给了网站哪些信息,浏览器都发起了哪些请求? 下图是某个网站的登陆界面,接下来就让我们通过命令行模拟浏览器实现登陆操作,看看一个简单的登陆操作,具...
    99+
    2023-01-31
    浏览器 python
  • Python NLP开发之实现聊天机器人
    目录1、简介2、代码测试2.1 open.drea.cc2.2 api.ruyi.ai2.3 route.showapi.com2.4 api.binstd.com2.5 api.j...
    99+
    2023-05-19
    Python实现聊天机器人 Python聊天机器人 Python聊天 Python 机器人
  • python模拟打开Google浏览器并
    写这个博客的原因就是因为之前都是传参爬虫,还好自己会点网页,爬了一段时间觉得心好累,每次都要去自己找URL,找规律,传headers。 然后就想着能...
    99+
    2023-01-31
    浏览器 python Google
  • javascript模拟实现计算器
    本文实例为大家分享了javascript模拟实现计算器的具体代码,供大家参考,具体内容如下 功能: 1、实现单击按钮录入数字 2、实现基础四则运算功能,并添加必要的异常处理。 3、实...
    99+
    2024-04-02
  • python实现网站的模拟登录
    本文主要用python实现了对网站的模拟登录。通过自己构造post数据来用Python实现登录过程。 当你要模拟登录一个网站时,首先要搞清楚网站的登录处理细节(发了什么样的数据,给谁发等...)。我是通过H...
    99+
    2022-06-04
    网站 python
  • python scrapy实现模拟登录功能
    本篇内容介绍了“python scrapy实现模拟登录功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、requests模块。直接携带c...
    99+
    2023-06-20
  • python实现的模板生成脚本
    最近项目需要,针对主项目提取一个小的基础版本,供于在新建项目时使用,所以就有这个python模板生成脚本,其作用如下: 1、通过配置文件来控制模板中的数据、格式化的过滤条件 2、执行后会把目录下所有的文件都会执行一篇     #!/us...
    99+
    2023-01-31
    脚本 模板 python
  • Python中怎么实现模块重载
    本篇文章为大家展示了Python中怎么实现模块重载,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。环境准备新建一个 foo 文件夹,其下包含一个 bar.py 文件$ tree f...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作