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

这篇具有很好参考价值的文章主要介绍了人生重开模拟器(Python实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

人生重开模拟器介绍

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

微信人生重开模拟器代码,Python,1024程序员节,python,开发语言

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

微信人生重开模拟器代码,Python,1024程序员节,python,开发语言

代码实现

下面我们实现一个简化版的人生重开模拟器,主要目的在于熟悉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 += 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('你出生在三线城市,你的父母是医生')
        strong += 1
    elif point == 2:
        print('你出生在镇上,你的父母是老师')
        iq += 1
    else:
        print('你出生在镇上,你的父母是个体户')
        home += 1
else:
    # 第四档
    if point == 1:
        print('你出生在农村,父母是辛苦劳作的农民')
        strong += 1
        face -= 2
    elif point == 2:
        print('你出生在穷乡僻壤,你的父母是无业游民')
        home -= 1
    else:
        print('你出生在镇上,你的父母感情不和')
        strong -= 1
print(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(秒数)的方式让程序暂停若干秒。

效果展示

微信人生重开模拟器代码,Python,1024程序员节,python,开发语言
说明一下:文章来源地址https://www.toymoban.com/news/detail-787582.html

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

到了这里,关于人生重开模拟器(Python实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《Python趣味工具》——文字RPG游戏的开发(附人生选择模拟器的详细讲解及其他多种RPG游戏的源码)

    今天我们来学习如何制作一个 文字RPG 游戏 。 内容主要分为3个部分: part1. 文字游戏( MUD )的趣味历史 part2. 文字游戏的设计方法 part3. 文字游戏功能实现 你知道国内首款很火的文字游戏是哪个大V写的吗? 你知道国内文字游戏界的活化石是什么吗? 一起来看看吧~~ 早期

    2024年02月19日
    浏览(48)
  • appium+夜神模拟器操作微信小程序,多个模拟器要结合yaml配置文件来并发控制,一万多行代码[建议收藏]

    技术心得 python+appium+夜神模拟器+结合yaml配置文件实现并发采集任务。   代码如下 : 模拟器的配置文件如下: 欢迎大家一起学习,一起进步,喜欢私聊。

    2024年02月13日
    浏览(49)
  • 【湍流介质的三维传播模拟器】全衍射3-D传播模拟器,用于在具有随机和背景结构的介质中传播无线电和光传播(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 全衍射

    2024年02月14日
    浏览(43)
  • python+Appium实现手机移动端自动化 - 模拟器 或 真机【有线】

    有线连接真机,实现真机自动化?实现模拟器自动化?在这里,都能满足你的需求! 什么都不说了,直接上干货吧,亲测可用哦👇 首先,先介绍下所需的环境,如下: JDK1.8 Appium Python3.x Android-sdk 夜深模拟器/mumu模拟器(PS: 自动化真机时可以选择不安装) 1)下载 方式1:官

    2024年02月16日
    浏览(47)
  • 夜神模拟器抓包微信小程序

          今天需要抓微信小程序的包,发现以前的配置不好使了,所以重新配了一下,记录下。      1)我使用的是夜神模拟器,安卓版本为android7,微信版本8.0.3,微信为夜神模拟器内部自带的,安装即可。      2)先修改网络,长按即可。      3)选择手动代理,配

    2024年02月12日
    浏览(93)
  • 夜神模拟器 burp抓包 ADB 微信小程序

    既然想了解如何抓包,我想大多数是已经安装好 夜神模拟器 和 Burp 了,这里就不在赘述,直接开始操作。 openssl 的下载地址:Win64 OpenSSL v3.1.4.exe burp 的下载地址 burp 2023 先设置 Burp 的监听地址。 cmd 进入终端,输入 ipconfig ,查看地址 设置监听地址和端口。 夜神模拟器打开

    2024年02月03日
    浏览(53)
  • 微信开发者工具模拟器中不显示鼠标问题

    前言 在使用微信开发者工具开发微信小程序时,使用到了第二屏幕,在第一屏幕上,微信开发者工具模拟器中,可以正常显示鼠标,而在第二屏幕上不显示鼠标。 解决方案: 方案1:设置指针轨迹:控制面板➡鼠标➡指针选项➡勾拳显示指针轨迹 。如下图所示: 这样方案的

    2024年02月12日
    浏览(69)
  • uniapp项目如何运行在微信小程序模拟器上

    在HbuilderX中的小程序写完后自己一定要保存,否则会出不来效果 那么怎么让uniapp项目运行在微信小程序开发工具中呢 1 在hbuilderx中点击运行到小程序模拟器 2 然后在项目目录中会生成一个文件夹 在微信小程序开发软件中的工具安全设置打开端口 或者在微信小程序中导入项目

    2024年02月13日
    浏览(44)
  • 最新微信小程序反编译方法(亲测有效,无需模拟器)

    此方法是本人多次试错意外发现的方法,以下是本人遇到的问题及解决方法,有其他方法欢迎讨论 1.下载node.js,直接去官网下载,配置教程网上有这里不讲了。 确保安装目录下有npm文件夹,后面会用到。 2.下载破解工具并解压,我解压到桌面https://codeload.github.com/superBiuBiuMan

    2023年04月08日
    浏览(47)
  • 通过Fiddler模拟器抓包微信小程序(适用APP)

    下载模拟器 准备抓包软件(fiddler或者Charles) fiddler设置 (1)打开设置:Tools-Options (2)点击Connections,设置端口和勾选第二个选项 (3)点击HTTPS,勾选前三个选项,下载证书 4、模拟器设置(夜神模拟器) (1)开启root权限 (2) 打开模拟器wlan设置 (长按连接的无线) 5、

    2023年04月18日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包