Python基础:人生重开模拟器(小游戏)

article/2025/6/25 17:50:43

引言

手把手带你速通Python

实现人生重开模拟器(小游戏)的意义:增强对条件语句,循环语句的运用,增加写代码的乐趣。

一、 游戏介绍

网页版的人生重开模拟器:

人生重开模拟器-重来-重启 (aizhancloud.cn)

玩家输入角色的初始属性之后, 就可以开启不同的人生经历。

这里实现其核心功能,通过控制台窗口展现出来。 

 

二、实现游戏

1. 设置初始属性

在游戏中我们设定四个属性:

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

约定每个属性的范围为 [1, 10], 并且总和不能超过 20.

如果玩家输入的初始属性不合理, 就提示输入有误, 重新输入.

print("+-------------------------------+")
print("|                               |")
print("|     花有重开日,人无再少年       |")
print("|     欢迎来到,人生重开模拟器     |")
print("|                               |")
print("+-------------------------------+")while True:print("请设置初始值(可用点数为20)")face = int(input("请输入颜值(1 ~ 10):"))iq = int(input("请输入智商(1 ~ 10):"))string = int(input("请输入体值(1 ~ 10):"))home = int(input("请输入家境(1 ~ 10):"))if face < 1 or face > 10:print("颜值输入有误")continueif iq < 1 or iq > 10:print("智商输入有误")continueif string < 1 or string > 10:print("体质输入有误")continueif home < 1 or home > 10:print("家境输入有误")continueif face + iq + string + home > 20:print("总值输入有误")continueprint("设置完成")break

 2. 设置性别

通过 random.randint(1, 6) 生成一个 [1, 6] 的随机整数, 类似于掷色子.

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

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

point = random.randint(1,6) # 掷色子
if point % 2 == 0:gender = "boy"print("你是个男孩")
else:gender = "girl"print("你是个女孩")

3. 设置出生点

首先按照家境(home), 分成四个档位。

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

再扔一次色子, 生成 [1, 3] 的随机数, 用来表示每一种细分情况.

这里的代码主要就是各种 if else 构成.

point = random.randint(1, 3) # 掷色子
if home == 10:print('你出生在帝都, 你的父母是高官政要')home += 1iq += 1face += 1
elif 7 <= home <= 9:if point == 1:print('你出生在大城市, 你的父母是公务员')face += 2elif point == 2:print('你出生在大城市, 你的父母是大企业高管')home += 2else:print('你出生在大城市, 你的父母是大学教授')iq += 2
elif 4 <= home <= 6:if point == 1:print('你出生在三线城市, 你的父母是教师')iq += 1elif point == 2:print('你出生在镇上, 你的父母是医生')strong += 1else:print("你出生在镇上, 你的父母是个体户")home += 1
else:if 1 <= point <= 2:print('你出生在村里, 你的父母是辛苦劳作的农民')strong += 1face -= 2elif 3 <= point <= 4:print('你出生在穷乡僻壤, 你的父母是无业游民')home -= 1else:print('你出生在镇上, 你父母感情不和')strong -= 1

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

按照年龄, 把人生经历分成四个阶段:

  • 幼年阶段 [1, 10]
  • 青年阶段 [11, 20]
  • 壮年阶段 [20, 50]
  • 老年阶段 50 岁以上.

每个阶段都会有不同的精力和事件发生.

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

此处我们以幼年为例, 简单实现一下这里的处理逻辑。

  • 使用 for 循环, 按照年龄循环起来.
  • 针对每一年, 先掷一次 [1, 3] 的色子, 根据不同的随机数值, 来触发不同的事件.
  • 根据性别, 年龄, 各种属性, 来触发不同的事件.
  • 这里都使用不同的事件可能会对属性有正面/负面的影响.
  • 在每一年的最后, 打印这一年遇到的事情.
  • 如果夭折, 则直接 sys.exit(0) 退出程序.
  • 使用 if - else 的方式来组织.
  • time.sleep(1) 使程序暂停执行 1s, 方便观察程序结果. 

这里只是以幼年为例,简单实现了一下。 

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 += 1home -= 1else:info += '你的父母没精力管你, 你的身体状况更糟糕了'strong -= 1# 颜值触发的事件elif face < 4 and age >= 7:info += '你因为长的太丑, 别的小朋友不喜欢你, 'if iq > 5:info += '你决定用学习填充自己'iq += 1else:if gender == 'boy':info += '你和别的小朋友经常打架'iq -= 1strong += 1else:info += '你经常被别的小朋友欺负'strong -= 1# 智商触发的事件elif iq < 5:info += '你看起来傻傻的, 'if home >= 8 and age >= 6:info += '你的父母给你送到更好的学校学习'elif 4 <= home <= 7:if gender == 'boy':info += '你的父母鼓励你多运动, 加强身体素质'strong += 1else:info += '你的父母鼓励你多打扮自己'face += 1else:info += '你的父母为此经常吵架'if point == 1:strong -= 1elif point == 2:iq -= 1# 健康成长else:info += '你健康成长, 'if point == 1:info += '看起来更聪明了'iq += 1elif point == 2:info += '看起来更好看了'face += 1else:info += '看起来更结实了'strong += 1print('-------------------------------------------')print(info)print(f'strong={strong}, face={face}, iq={iq}, home={home}')time.sleep(1)

若感兴趣,可以扩展更多。🌹😉

三、所有代码

import random
import sys
import timeprint("+-------------------------------+")
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("颜值输入有误")continueif iq < 1 or iq > 10:print("智商输入有误")continueif strong < 1 or strong > 10:print("体质输入有误")continueif home < 1 or home > 10:print("家境输入有误")continueif face + iq + strong + home > 20:print("总值输入有误")continueprint("设置完成")breakpoint = random.randint(1,6) # 掷色子
if point % 2 == 0:gender = "boy"print("你是个男孩")
else:gender = "girl"print("你是个女孩")point = random.randint(1, 3) # 掷色子
if home == 10:print('你出生在帝都, 你的父母是高官政要')home += 1iq += 1face += 1
elif 7 <= home <= 9:if point == 1:print('你出生在大城市, 你的父母是公务员')face += 2elif point == 2:print('你出生在大城市, 你的父母是大企业高管')home += 2else:print('你出生在大城市, 你的父母是大学教授')iq += 2
elif 4 <= home <= 6:if point == 1:print('你出生在三线城市, 你的父母是教师')iq += 1elif point == 2:print('你出生在镇上, 你的父母是医生')strong += 1else:print("你出生在镇上, 你的父母是个体户")home += 1
else:if 1 <= point <= 2:print('你出生在村里, 你的父母是辛苦劳作的农民')strong += 1face -= 2elif 3 <= point <= 4:print('你出生在穷乡僻壤, 你的父母是无业游民')home -= 1else:print('你出生在镇上, 你父母感情不和')strong -= 1for 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 += 1home -= 1else:info += '你的父母没精力管你, 你的身体状况更糟糕了'strong -= 1# 颜值触发的事件elif face < 4 and age >= 7:info += '你因为长的太丑, 别的小朋友不喜欢你, 'if iq > 5:info += '你决定用学习填充自己'iq += 1else:if gender == 'boy':info += '你和别的小朋友经常打架'iq -= 1strong += 1else:info += '你经常被别的小朋友欺负'strong -= 1# 智商触发的事件elif iq < 5:info += '你看起来傻傻的, 'if home >= 8 and age >= 6:info += '你的父母给你送到更好的学校学习'elif 4 <= home <= 7:if gender == 'boy':info += '你的父母鼓励你多运动, 加强身体素质'strong += 1else:info += '你的父母鼓励你多打扮自己'face += 1else:info += '你的父母为此经常吵架'if point == 1:strong -= 1elif point == 2:iq -= 1# 健康成长else:info += '你健康成长, 'if point == 1:info += '看起来更聪明了'iq += 1elif point == 2:info += '看起来更好看了'face += 1else:info += '看起来更结实了'strong += 1print('-------------------------------------------')print(info)print(f'strong={strong}, face={face}, iq={iq}, home={home}')time.sleep(1)


http://www.hkcw.cn/article/xYXnvSvXfg.shtml

相关文章

【Elasticsearch】ILM(Index Lifecycle Management)策略详解

ILM&#xff08;Index Lifecycle Management&#xff09;策略详解 1.什么是 ILM 策略&#xff1f;2.ILM 解决的核心业务问题3.ILM 生命周期阶段3.1 Hot&#xff08;热阶段&#xff09;3.2 Warm&#xff08;温阶段&#xff09;3.3 Cold&#xff08;冷阶段&#xff09;3.4 Delete…

【存储基础】数据存储基础知识

文章目录 1. 概述&#xff1a;数据存储基础知识2. 存储物理介质3. 数据存储的分类3.1按存储架构分类DAS 直连存储SAN 存储区域网络NAS 网络附加存储分布式存储四种架构之间的核心区别 3.2 按数据模型分类块存储文件存储对象存储 4. 数据存储的关键技术方案和核心机制冗余与容错…

【Part 3 Unity VR眼镜端播放器开发与优化】第二节|VR眼镜端的开发适配与交互设计

文章目录 《VR 360全景视频开发》专栏Part 3&#xff5c;Unity VR眼镜端播放器开发与优化第一节&#xff5c;基于Unity的360全景视频播放实现方案第二节&#xff5c;VR眼镜端的开发适配与交互设计一、Unity XR开发环境与设备适配1.1 启用XR Plugin Management1.2 配置OpenXR与平…

小米YU7还有5款颜色即将发布 更多色彩敬请期待

6月1日,小米在5月22日的发布会上公布了YU7的四款颜色:钛金属色、宝石绿、熔岩橙和寒武岩灰。官方透露,除了这四款已发布的颜色外,还有五款新颜色即将推出,每一种都设计得非常经典。回顾之前的小米SU7,在刚推出时就提供了9种颜色选择,涵盖了跑车色系、时尚色系、豪华色系…

老人被甩客执法人员送其回家 温情护送获赠枇杷

日前,重庆交通执法总队轨道交通支队三大队在重庆西站巡查时发现一名老人误乘“黑车”。考虑到她年近九旬行动不便,执法人员开车将其安全护送回家。老人感激地拿出自己种的枇杷送给执法人员以示感谢。5月27日上午,执法人员在巡查过程中发现一辆渝A籍车辆正在下客,随即上前检…

2025最新 MacBook Pro苹果电脑M系列芯片安装zsh教程方法大全

2025最新 MacBook Pro苹果电脑M系列芯片安装zsh教程方法大全 本文面向对 macOS 环境和终端操作尚不熟悉的“小白”用户。我们将从最基础的概念讲起&#xff0c;结合实际操作步骤&#xff0c;帮助你在 2025 年最新 MacBook Pro&#xff08;搭载苹果 M 系列芯片&#xff09;的环境…

女子多次上门骚扰邻居 持刀砍门引发恐慌

近日,辽宁大连有网友发布视频称,疑似患有精神疾病的邻居多次持刀上门砍其家门。当事人刘女士向媒体透露,楼下60多岁的邻居自去年10月搬家入住后,就反复上门找事,声称刘女士一家是脑控组织,想要入侵她的大脑。刘女士表示自己是外地人,去年刚搬进来,为方便孩子上学才购买…

遥控器竟牵出10亿元大案 数据篡改揭秘

涉及河南、四川、浙江等16省市,涉案交易金额达10.3亿元的合同诈骗案成功告破。内蒙古自治区鄂尔多斯市杭锦旗警方通过流量计调节流量和篡改数据的方式,将27名犯罪嫌疑人全部抓获。2024年3月,一封匿名举报信揭露了某石油工程有限公司通过更改流量计数据窃取国家能源的行为。杭…

弗朗西斯卡说樊振东加盟像做梦一样 莫大荣耀与期待

6月2日,据外媒报道,队长弗朗西斯卡在接受采访时谈到夺冠以及樊振东加盟表示:“感觉像做梦一样,樊振东加盟是我们莫大的荣耀。”决赛周末俱乐部宣布了轰动消息,奥运冠军兼前世界冠军樊振东将代表球队出战全部三项赛事。对于下赛季谁能击败他们的问题,弗朗西斯卡表示这取决…

董宇辉在陕西汉江赛龙舟夺冠 体验传统民俗乐趣

5月31日,陕西安康第25届汉江龙舟节开幕。当日,龙舟方阵展演,龙舟横渡汉江,抢鸭子、摸鲤鱼等传统环节亮相开幕式,节日氛围浓厚。今年有27支队伍600多名选手参加龙舟竞渡比赛。董宇辉现身安康龙舟文化园,与现场市民、游客热情互动,齐喊端午安康。他和团队成员在汉江边进行…

租客退房现垃圾场 下水道都堵了 屋内堆满垃圾几乎无处下脚

山东潍坊一名租客租住半年退房时,房东发现屋内堆满生活垃圾。发布视频的当地民宿工作人员称租客是一名年轻女生,房东已报警。辖区派出所表示正在处理此事。5月31日,抖音实名认证的潍坊潍城区怀夏民宿发布了一段54秒的现场视频,显示屋内一片狼藉,堆满了生活垃圾,几乎无处下…

上迪情侣和一家三口扭打 拍照冲突引发热议

5月31日,有网友发布视频称,在上海迪士尼乐园内一对情侣与一家三口发生冲突并扭打在一起,此事引发广泛关注。视频中可以看到双方在现场互相推搡,周围游客纷纷上前劝阻。据权威人士透露,事件发生在5月31日,地点并非排队区域,而是游客自由拍照的点位。情侣和一家三口因拍照…

北京大兴警方严查炸街摩托 夜查行动见效

大兴公安分局针对南海子公园南环路牡丹园南广场区域夜间改装摩托车聚集扰民问题,开展了专项整治行动。这些非法改装的摩托车不仅存在安全隐患,其巨大的噪音也严重干扰了周边居民的生活。5月30日晚,大兴交通支队旧宫中队在“炸街车”夜间活动高发时段,科学部署警力,采取定点…

AI矢量软件|Illustrator 2025网盘下载与安装教程指南

说起AI&#xff0c;很多人第一印象可能是AI人工智能&#xff0c;是与Python相关。实际上&#xff0c;本文要讲的AI&#xff0c;是Adobe Illustrator的缩写&#xff0c;它是一款基于矢量的图形制作软件&#xff0c;主要应用于插画、包装、印刷出版、书籍排版、动画和网页制作等领…

【Spring】RAG 知识库基础

1. RAG 基础概念 1.1 什么是 RAG&#xff1f; RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;是一种将检索技术与人工智能生成技术相结合的混合架构&#xff0c;用于解决大模型时效性限制与幻觉问题 你可以这样理解&#xff1a;RAG 技…

NLP学习路线图(十七):主题模型(LDA)

在浩瀚的文本海洋中航行&#xff0c;人类大脑天然具备发现主题的能力——翻阅几份报纸&#xff0c;我们迅速辨别出"政治"、"体育"、"科技"等板块&#xff1b;浏览社交媒体&#xff0c;我们下意识区分出美食分享、旅行见闻或科技测评。但机器如何…

信息安全管理与评估山东卷无线部分答案

配置解析 配置解析 配置解析 radio 1工作在2.4g频段下 radio 2工作在5.0g频段下 配置解析 station-isolation配置关联在同一个VAP下的用户无法互通,但是可以和其他VAP下关联的用户互通,这里的隔离功能类似于交换的端口隔离功能。 arp-suppression开启该功能后则自动使能ARP…

Netty学习example示例

文章目录 simpleServer端NettyServerNettyServerHandler Client端NettyClientNettyClientHandler tcp&#xff08;粘包和拆包&#xff09;Server端NettyTcpServerNettyTcpServerHandler Client端NettyTcpClientNettyTcpClientHandler protocolcodecCustomMessageDecoderCustomM…

Linux系统精准定位创建句柄的进程

在Linux系统中&#xff0c;可以通过以下方法精准定位创建句柄的进程&#xff1a; &#x1f50d; 一、核心排查命令 ​​lsof 命令​​ ​​查看所有进程的句柄占用​​&#xff1a; lsof | awk {print $1, $2} | sort | uniq -c | sort -nr | head -n 20 ​​输出说明​​&…

ASP.NET Core OData 实践——Lesson8增删改查单值类型Property(C#)

大纲 支持的接口主要模型设计控制器设计数据源查询(GET)查询基类类型Entity的基础类型属性的值查询派生类型Entity的基础类型属性值查询基类类型Entity的派生类型属性值查询派生类型Entity的派生类型属性值 完整更新(PUT)完整更新基类类型Entity的基础类型属性值完整更新派生类…