[Python] 《人生重开模拟器》游戏实现

news2024/11/29 18:42:38


文章目录

  • 优化点一:多元化的天赋系统
      • 示例天赋:
      • 天赋选择代码:
  • 优化点二:更加多样化的随机事件
      • 年龄阶段划分:
      • 随机事件代码:
  • 优化点三:设定人生目标
      • 人生目标示例:
      • 人生目标代码:
  • 完整《人生重开模拟器》代码

收录专栏:[Python]

《人生重开模拟器》是一款模拟人生经历的游戏,它让玩家通过一系列选择和随机事件,体验不同的人生轨迹。在原版简单Python实现的命令行游戏的基础上,我们对其进行了优化,使其玩法更加丰富、有趣,增加了更多的随机性、选择性以及人生目标,让每次模拟都充满了未知和挑战。本文将详细介绍这些优化点,并附上可以运行的完整代码。

优化点一:多元化的天赋系统

为了增加游戏的趣味性和重玩性,优化版增加了一个天赋系统。在游戏开始时,玩家可以从不同的天赋中进行选择,每个天赋会对初始属性以及未来随机事件产生不同的影响。

示例天赋:

  • 智商天赋:你天资聪颖,智商+2,在后续的学习和工作事件中会有额外加成。
  • 体质天赋:你体格强健,体质+2,在遭遇疾病或意外时更容易恢复。
  • 颜值天赋:你天生丽质,颜值+2,更容易在社交中获得好感。
  • 家境天赋:你出生富裕,家境+2,生活资源更加丰富,未来可以拥有更多选择。

通过选择不同的天赋,玩家可以体验不同的人生开局,这大大增加了游戏的多样性。

天赋选择代码:

def choose_talent():
    talents = {
        "智商天赋": {"iq": 2, "description": "你天资聪颖,智商+2"},
        "体质天赋": {"strong": 2, "description": "你体格强健,体质+2"},
        "颜值天赋": {"face": 2, "description": "你貌美如花,颜值+2"},
        "家境天赋": {"home": 2, "description": "你出生在富裕家庭,家境+2"}
    }

    print("请选择一个天赋:")
    for idx, talent in enumerate(talents):
        print(f"{idx + 1}. {talent}: {talents[talent]['description']}")

    choice = int(input("输入天赋编号: "))
    selected_talent = list(talents.values())[choice - 1]

    return selected_talent

优化点二:更加多样化的随机事件

优化后的游戏为每个年龄阶段设计了更多的随机事件,这些事件会根据玩家的属性值以及性别、年龄等因素进行触发,增加了游戏的复杂性。每个事件都可能会对玩家的属性产生正面或负面的影响,进一步推动人生轨迹的发展。

年龄阶段划分:

  • 幼年阶段(1-10岁):以身体发育、家庭环境为主,玩家的体质和智商可能会受到影响。
  • 青年阶段(11-20岁):以学习和社交为主,智商和颜值是主要影响因素。
  • 壮年阶段(21-50岁):以工作和家庭为主,家境和智商决定职业发展的方向。
  • 老年阶段(50岁以上):健康和家境的影响会更加显著,可能会触发疾病和死亡事件。

随机事件代码:

def random_event(age, gender, face, strong, iq, home):
    event_outcome = ""
    point = random.randint(1, 6)

    if 1 <= age <= 10:
        # 幼年阶段,社交事件
        if point == 1 and face >= 7:
            event_outcome = "你长得很可爱,交到了很多朋友。"
            face += 1
        elif point == 2 and iq >= 7:
            event_outcome = "你非常聪明,成绩一直名列前茅。"
            iq += 1
        else:
            event_outcome = "你健康成长。"

    elif 11 <= age <= 20:
        # 青年阶段,学习事件
        if point == 1 and iq >= 7:
            event_outcome = "你考上了一所重点中学。"
            iq += 2
        elif point == 2 and home >= 7:
            event_outcome = "你的家境优越,进入了名校学习。"
            iq += 2
            home -= 1
        else:
            event_outcome = "你度过了一个平淡的青春期。"

    elif 21 <= age <= 50:
        # 壮年阶段,工作事件
        if point == 1 and home >= 8:
            event_outcome = "你继承了家族企业,家境大幅提升。"
            home += 3
        elif point == 2 and iq >= 8:
            event_outcome = "你凭借高智商获得了理想的工作。"
            iq += 2
        elif point == 3:
            event_outcome = "你遇到了工作上的瓶颈,身心疲惫。"
            strong -= 1
        else:
            event_outcome = "你在工作中稳定发展。"

    else:
        # 老年阶段,健康事件
        if point == 1:
            event_outcome = "你患上了一些老年疾病,身体健康下降。"
            strong -= 2
        elif point == 2 and strong >= 6:
            event_outcome = "你保持着良好的身体状态,健康长寿。"
            strong += 1
        else:
            event_outcome = "你平稳地度过了这一年。"

    return event_outcome, face, strong, iq, home

优化点三:设定人生目标

为了使游戏更具目标性,优化版允许玩家在游戏开始时选择一个人生目标。玩家可以通过做出相应的选择和随机事件逐步实现目标,从而提高游戏的趣味性和挑战性。

人生目标示例:

  • 科学家:智商达到 10,完成重大科研成就。
  • 富翁:家境达到 15,拥有庞大的财富。
  • 颜值巅峰:颜值达到 10,成为万人迷。

人生目标代码:

def choose_goal():
    goals = {
        "科学家": {"description": "智力达到 10,完成重大科研成就。", "condition": lambda iq: iq >= 10},
        "富翁": {"description": "家境达到 15,拥有庞大的财富。", "condition": lambda home: home >= 15},
        "颜值巅峰": {"description": "颜值达到 10,成为万人迷。", "condition": lambda face: face >= 10},
    }

    print("请选择你的人生目标:")
    for idx, goal in enumerate(goals):
        print(f"{idx + 1}. {goal}: {goals[goal]['description']}")

    choice = int(input("输入目标编号: "))
    selected_goal = list(goals.values())[choice - 1]

    return selected_goal

完整《人生重开模拟器》代码

以下是优化后的完整代码,包含初始属性设置、天赋选择、随机事件触发和人生目标的实现。可以直接运行并体验模拟人生的乐趣。

import random
import time
import sys

# 游戏开始欢迎
print("+---------------------------------------------------------------------+")
print("| |")
print("| 花有重开日, 人无再少年 |")
print("| |")
print("| 欢迎来到, 人生重开模拟器 |")
print("| |")
print("+---------------------------------------------------------------------+")

# 选择天赋
def choose_talent():
    talents = {
        "智商天赋": {"iq": 2, "description": "你天资聪颖,智商+2"},
        "体质天赋": {"strong": 2, "description": "你体格强健,体质+2"},
        "颜值天赋": {"face": 2, "description": "你貌美如花,颜值+2"},
        "家境天赋": {"home": 2, "description": "你出生在富裕家庭,家境+2"}
    }

    print("请选择一个天赋:")
    for idx, talent in enumerate(talents):
        print(f"{idx + 1}. {talent}: {talents[talent]['description']}")

    choice = int(input("输入天赋编号: "))
    selected_talent = list(talents.values())[choice - 1]

    return selected_talent

# 选择人生目标
def choose_goal():
    goals = {
        "科学家": {"description": "智力达到 10,完成重大科研成就。", "condition": lambda iq: iq >= 10},
        "富翁": {"description": "家境达到 15,拥有庞大的财富。", "condition": lambda home: home >= 15},
        "颜值巅峰": {"description": "颜值达到 10,成为万人迷。", "condition": lambda face: face >= 10},
            }

    print("请选择你的人生目标:")
    for idx, goal in enumerate(goals):
        print(f"{idx + 1}. {goal}: {goals[goal]['description']}")

    choice = int(input("输入目标编号: "))
    selected_goal = list(goals.values())[choice - 1]

    return selected_goal

# 随机事件触发机制
def random_event(age, gender, face, strong, iq, home):
    event_outcome = ""
    point = random.randint(1, 6)

    if 1 <= age <= 10:
        # 幼年阶段,社交事件
        if point == 1 and face >= 7:
            event_outcome = "你长得很可爱,交到了很多朋友。"
            face += 1
        elif point == 2 and iq >= 7:
            event_outcome = "你非常聪明,成绩一直名列前茅。"
            iq += 1
        else:
            event_outcome = "你健康成长。"

    elif 11 <= age <= 20:
        # 青年阶段,学习事件
        if point == 1 and iq >= 7:
            event_outcome = "你考上了一所重点中学。"
            iq += 2
        elif point == 2 and home >= 7:
            event_outcome = "你的家境优越,进入了名校学习。"
            iq += 2
            home -= 1
        else:
            event_outcome = "你度过了一个平淡的青春期。"

    elif 21 <= age <= 50:
        # 壮年阶段,工作事件
        if point == 1 and home >= 8:
            event_outcome = "你继承了家族企业,家境大幅提升。"
            home += 3
        elif point == 2 and iq >= 8:
            event_outcome = "你凭借高智商获得了理想的工作。"
            iq += 2
        elif point == 3:
            event_outcome = "你遇到了工作上的瓶颈,身心疲惫。"
            strong -= 1
        else:
            event_outcome = "你在工作中稳定发展。"

    else:
        # 老年阶段,健康事件
        if point == 1:
            event_outcome = "你患上了一些老年疾病,身体健康下降。"
            strong -= 2
        elif point == 2 and strong >= 6:
            event_outcome = "你保持着良好的身体状态,健康长寿。"
            strong += 1
        else:
            event_outcome = "你平稳地度过了这一年。"

    return event_outcome, face, strong, iq, home

# 初始属性设定
def set_initial_attributes():
    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("初始属性设定完成!")
        break

    return face, strong, iq, home

# 设置性别
def set_gender():
    point = random.randint(1,6)  # 随机生成数字来决定性别
    if point % 2 == 1:
        gender = 'boy'
        print("你是个男孩")
    else:
        gender = 'girl'
        print("你是个女孩")
    
    return gender

# 游戏主循环
def run_game():
    # 设置初始属性
    face, strong, iq, home = set_initial_attributes()

    # 选择天赋
    talent = choose_talent()
    face += talent.get("face", 0)
    strong += talent.get("strong", 0)
    iq += talent.get("iq", 0)
    home += talent.get("home", 0)

    # 选择性别
    gender = set_gender()

    # 选择人生目标
    goal = choose_goal()

    # 游戏循环:模拟每年的事件
    for age in range(1, 51):
        # 触发随机事件
        event_outcome, face, strong, iq, home = random_event(age, gender, face, strong, iq, home)
        print(f'你今年 {age} 岁: {event_outcome}')
        print(f'当前属性: 颜值={face}, 体质={strong}, 智力={iq}, 家境={home}')

        # 检查是否达成人生目标
        if goal["condition"](iq) or goal["condition"](home) or goal["condition"](face):
            print(f"恭喜!你在 {age} 岁达成了人生目标:{goal['description']}")
            break

        # 停顿一会以便玩家观察
        time.sleep(2)

# 启动游戏
run_game()

你可以直接运行这段代码,体验《人生重开模拟器》,开启一段全新的人生冒险吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2191887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubunut声卡配置 播放视频没有声音的解决方法 alsamixer和pavucontrol的使用方法

文章目录 &#x1f319;ubuntu22.04网页没有声音&#xff0c;声卡提示Dummy Output方法一&#xff1a;切换内核&#x1f319;方法二&#xff1a;使用知乎的方法 &#x1f319;ubuntu22.04 连接蓝牙耳机&#xff0c;1秒后断连解决方法ubuntu声音操作alsamixerpavucontrol通过are…

高校校园交友系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;基础数据管理&#xff0c;论坛管理&#xff0c;公告信息管理&#xff0c;轮播图信息管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;用户&#…

15分钟学 Python 第40天:Python 爬虫入门(六)第一篇

Day40 &#xff1a;Python 爬取豆瓣网前一百的电影信息 1. 项目背景 在这个项目中&#xff0c;我们将学习如何利用 Python 爬虫技术从豆瓣网抓取前一百部电影的信息。通过这一练习&#xff0c;您将掌握网页抓取的基本流程&#xff0c;包括发送请求、解析HTML、存储数据等核心…

【青训入营】青海湖租车之旅

# 问题描述油价飞升的今天&#xff0c;我们尽量减少花费。我们出门旅游&#xff0c;有时候租车去旅游也是一种不错的方式。这次我们这次旅游是从「青海湖」到「景点 X」&#xff0c;景点 X 可以是「敦煌」、「月牙泉」等&#xff0c;线路的路径是唯一的&#xff0c;假设我们每走…

佳易王电玩店ps5计时计费系统软件倒计时语音提醒软件操作教程

一、前言 【试用版软件下载可以点击最下方官网卡片】 佳易王电玩店ps5计时计费系统软件倒计时语音提醒软件操作教程 1、时间显示&#xff1a;正常使用时间&#xff0c;直观显示在对应桌旁。 2、倒计时显示&#xff1a;右侧显示剩余多少分钟&#xff0c; 3、定时语音提醒&am…

zookeeper选举kafka集群的controller

zookeeper选举kafka集群的controller目录 文章目录 zookeeper选举kafka集群的controller目录前言一、实操体验controller的选举二、模拟controller选举四、删除controller节点 前言 kafka集群的controller是kafka集群中一个有特殊作用的broker&#xff0c;负责整个kafka集群的…

【网络原理】TCP保持“可靠传输”的秘密--确认应答与超时重传机制

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;计算机网络那些事 在上一篇文章中&#xff0c;我们研究了UDP报文的结构&#xff0c;由于其报头中只有两个字节来记录报文长度&#xff0c;导致一次最多只能传输 64KB 的数据&#xff0c;这完全无法满…

Mamba 架构在医学图像分析中的全面综述:分类、分割、重建及其他应用

Mamba 是一种状态空间模型&#xff08;State Space Model, SSM&#xff09;的特例&#xff0c;作为医学图像分析中模板驱动深度学习方法的替代方案&#xff0c;正日益受到关注。尽管 transformer 是强大的架构&#xff0c;但它也存在一些缺陷&#xff0c;例如计算复杂度为平方级…

图元是什么,图元在组态设计中发挥什么作用

从事HMI设计的小伙伴&#xff0c;肯定听说过图元的这个概念&#xff0c;图元简单可以理解为构成图形的最近本元素&#xff0c;如线、面、几何体等等&#xff0c;在一些组态软件中&#xff0c;图元的的重要性甚至超过了界面&#xff0c;因为有了图元就意味着有了千变万化的界面&…

[ESP32]ESP-IDF使用组件添加U8g2图形库

U8g2 在ESP32使用u8g2的时候可以使用添加component的方式进行, 由于官方的component库没有, 这里我找到了一个可以使用的github库, 使用git的方式进行添加这一个库 具体的原理可以看[官方手册](https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32/api-guides/to…

《Windows PE》4.1.4 手工重构导入表

接下来我们做一个稍微复杂一些的实验&#xff0c;实验需要四个程序&#xff1a; HelloWorld.exe&#xff1a;弹出MessageBox窗口&#xff08;实验1已实现&#xff09;。 Regedit.exe&#xff1a;添加注册表启动项。 LockTray.exe&#xff1a;锁定任务栏窗口。 UnLockTray.exe&…

各省份农林牧渔业总产值统计数据(2000-2022年)

数据来源 《中国统计年鉴》 农业、林业、牧业和渔业作为国民经济的重要组成部分&#xff0c;对于保障国家粮食安全、促进区域经济发展、实现农业农村现代化和乡村振兴具有重要意义。 2000年-2022年全国各省份农林牧渔业总产值统计数据&#xff08;大数据&#xff09;.zip资源…

DBMS-3.1 SQL(1)——SQL概述和DDL

本文章的素材与知识来自李国良老师和王珊老师。 SQL概述 1.定义 2.SQL语句分类 数据定义语言DDL&#xff08;Data Definition Language&#xff09; 一.表 1.创建表 &#xff08;1&#xff09;语法 中括号内的项为可选项。分号标志着一条SQL语句的结束。SQL语句不区分大小…

【Spring Boot React】Spring Boot和React教程 完整版

【Spring Boot & React】Spring Boot和React教程 在B站找到一个不错的SpringBoot和React的学习视频&#xff0c;作者是amigoscode 【Spring Boot & React】Spring Boot和React教程 2023年更新版【Spring Boot React】价值79.9美元&#xff0c;全栈开发&#xff0c;搭…

付费计量系统实体和接口(1)

13.System entities and interfaces 系统实体和接口 See also Clause 4 for a discussion on general concepts and Clause 5 for generic entity model. 参见条目 4 讨论总体概念、条目 5 通用实体模型。 An entity specification should specify the embodied functions and …

【Unity踩坑】UWP项目安装包认证失败

问题&#xff1a;在Unity导出的VS项目&#xff0c;打包生成appx后&#xff0c;进行应用认证时失败。提示部分API不支持。 API __C_specific_handler in kernel32.dll is not supported for this application type. UnityPlayer.dll calls this API.API DXGIGetDebugInterface1 …

【Linux】进程控制(创建、终止、等待、替换)

文章目录 1. 进程创建2. 进程终止3. 进程等待4. 进程程序替换4.1 认识进程替换4.2 认识全部接口 1. 进程创建 如何创建进程我们已经在之前学习过了&#xff0c;无非就是使用fork()&#xff0c;它有两个返回值。创建成功&#xff0c;给父进程返回PID&#xff0c;给子进程返回0&…

LLM大模型常见面试题汇总(含答案)

最近秋招正在如火如荼地进行中&#xff0c;看到很多人的简历上都包含大模型相关的工作&#xff0c;各家大厂和初创都很舍得给钱&#xff0c;动辄百万年包也变得不再稀奇。 因此在大模型纵横的这个时代&#xff0c;不仅大模型技术越来越卷&#xff0c;就连大模型相关的岗位和面…

零点校准说明

目录 注意&#xff0c;校准时电机不能带负载&#xff0c;否则校准容易出错。 零点校准 点击【零点校准】&#xff0c;显示“校准中…”, 如果是“High Current”类型电机&#xff0c;电机先“嘀”一声测量电阻电感&#xff08;耗时约5秒&#xff09;&#xff0c;然后再正转一圈…

【实战】Nginx+Lua脚本+Redis 实现自动封禁访问频率过高IP

大家好&#xff0c;我是冰河~~ 自己搭建的网站刚上线&#xff0c;短信接口就被一直攻击&#xff0c;并且攻击者不停变换IP&#xff0c;导致阿里云短信平台上的短信被恶意刷取了几千条&#xff0c;加上最近工作比较忙&#xff0c;就直接在OpenResty上对短信接口做了一些限制&am…