PYTHON-“人生重开模拟器“

简介: PYTHON-“人生重开模拟器“

游戏页面

 

 

 

游戏结果

游戏实现思路

现在我们利用python进行编程实现一个简化版的人生重开模拟器

1.游戏开始的时候,设定初始属性~

  颜值,体质,智力,家庭

2.开始游戏,随机生成性别和出生点~

3.针对每一年,都生成人生的经历~~(依靠一定的随机因素+当前角色的属性)

1.游戏开始的时候,设定初始属性~

# 人生重开模拟器 ~
print("+--------------------------------------+")
print("|                                      |")
print("|         ❀有重开日,人无再少年           |")
print("|                                      |")
print("|         欢迎来到,人生重开模拟器         |")
print("|                                      |")
print("+--------------------------------------+")
# 设置初始属性
# 颜值,体质,智力,家境,总和不能超过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):"))
    #通过条件语句,对于用户的属性进行校验检查
    #这段逻辑,使用elif是否可以呢?--->完全可以,效果是相同的.
    #使用elif则是多个分支只能进行一个,一旦某个条件满足了,就不会再走其他的分支了.
    #此处虽然没有使用elif,但是有了 continue,一旦某个条件满足,continue就会使循环从头再来,
    #也就没机会继续执行后续的条件判定了.
    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

2.开始游戏,随机生成性别和出生点~

#随机生成角色性别
#使用 random.randint(beg,end),就能生成[beg,end]随机整数
import random
point=random.randint(1,6)
#print(f"point={point}")
#假设单数为男,双数为女
if point % 2==1:
    gender="boy"
    print("你是个男孩")
else:
    gender="girl"
    print("你是个女孩")
#设定角色出生点
#为了简单,就直接生成1-3的随机数
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}")

注意:实现一个游戏的时候,很多时候,游戏本身涉及到的逻辑,并不复杂~~但是游戏中一些具体的数据,数值平衡,是非常复杂的!!--->有兴趣的小伙伴也可以用其它方式进行划分

补充:在python中,如果想引入其它模块,需先使用import语句,把模块的名字给"导入进来"~

PyCharm来说,有一个功能能够自动导入当前使用的模块~

random.randint此处的random是一个python中的模块!--->别人写好的代码,直接给我们来用~

使用别人模块的优点:

  1. 节省开发时间和成本:使用别人的模块可以避免自己从零开始编写功能,减少开发时间和成本。
  2. 降低开发风险:已有的模块已经经过测试和验证,可以减少出现错误的风险。
  3. 增加代码质量和可维护性:使用别人的模块可以避免自己编写的代码出现问题,提高代码质量和可维护性。
  4. 加速项目进度:使用别人的模块可以加速项目进度,使项目更快地完成。
  5. 提升开发效率:使用别人的模块可以避免重复劳动,提高开发效率。

3.针对每一年,都生成人生的经历~~(依靠一定的随机因素+当前角色的属性)

人生阶段及特点

幼年阶段 [1,10] 可塑性强~
青年阶段 [11,20] 求学阶段~
壮年阶段 [20,50]    平稳~
老年阶段 50岁以上 颜值,体质和智力显著退化~(游戏结束)

✨幼年阶段~

     先使用一个循环,按照年龄,从1循环到10

     针对每一年,都生成一个随机数~[1,3]

     根据角色,性别,年龄,各种属性,触发各种事件,随机数会对 事件的结果造成影响~

     这里的事件可能会对属性带来变更~ ~

     每一年执行结束,都打印这一年发生的事件(让每年只发生一个事件)

     也可能会遇到 夭折 的情况~~使用exit函数来结束程序~ ~      

 sys是system的缩写,也是python内部提供的一个模块~

 功能是退出程序,一般括号里写0即可~

#幼年阶段
for age in range(1,11):
    #把一整年的打印都整理到一个字符串中,在这一年的结尾统一打印
    info = f"你今年{age}岁."
    # 生成一个 [1,3] 的随机整数.
    point = random.randint(1,3)
    # 接下来编写各种事件的代码
    # 性别触发的事件
    if gender=="girl" and home <= 3 and point == 1:
        info += '你的家里人重男轻女思想非常严重,你被遗弃了!'
        print(info)
        print("游戏结束!")
        import sys
        sys.exit(0)
        #sys是system的缩写,也是python内部提供的一个模块~ ~功能是退出程序,一般括号里写0即可
    # 体质触发的事件
    # 使用 elif 是为了保证每年只触发一个事件!
    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 >= 8 and age >= 6:
            info += "你的父母把你送到更好的学校学习"
            iq += 1
        elif 4 <= home <= 7:
            if gender == "boy":
                info += "你的父母鼓励你多运动,争取成为运动员"
                strong += 1
            else:
                info += "你的父母鼓励你多打扮自己"
                face += 1
        else:
            # 家境 < 4
            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:
            # 无事发生
            pass
    # 打印这一年发生的事情
    print(info)
    print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
    print("------------------------------------------------")
    #为了方便观察,加一个小小的暂停操作
    import time
    time.sleep(1)
    #time 也是python提供的模块
    #sleep 的功能就是让程序暂停一会,再继续执行 1就是1秒

此处只写了幼年阶段,青年,中年,老年也是类似的,由于时间问题,就暂时写到这里.

游戏总体代码:

# 人生重开模拟器 ~
print("+--------------------------------------+")
print("|                                      |")
print("|         ❀有重开日,人无再少年           |")
print("|                                      |")
print("|         欢迎来到,人生重开模拟器         |")
print("|                                      |")
print("+--------------------------------------+")
# 设置初始属性
# 颜值,体质,智力,家境,总和不能超过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):"))
    #通过条件语句,对于用户的属性进行校验检查
    #这段逻辑,使用elif是否可以呢?--->完全可以,效果是相同的.
    #使用elif则是多个分支只能进行一个,一旦某个条件满足了,就不会再走其他的分支了.
    #此处虽然没有使用elif,但是有了 continue,一旦某个条件满足,continue就会使循环从头再来,
    #也就没机会继续执行后续的条件判定了.
    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
#随机生成角色性别
#使用 random.randint(beg,end),就能生成[beg,end]随机整数
import random
point=random.randint(1,6)
#print(f"point={point}")
#假设单数为男,双数为女
if point % 2==1:
    gender="boy"
    print("你是个男孩")
else:
    gender="girl"
    print("你是个女孩")
#设定角色出生点
#为了简单,就直接生成1-3的随机数
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}")
#幼年阶段
for age in range(1,11):
    #把一整年的打印都整理到一个字符串中,在这一年的结尾统一打印
    info = f"你今年{age}岁."
    # 生成一个 [1,3] 的随机整数.
    point = random.randint(1,3)
    # 接下来编写各种事件的代码
    # 性别触发的事件
    if gender=="girl" and home <= 3 and point == 1:
        info += '你的家里人重男轻女思想非常严重,你被遗弃了!'
        print(info)
        print("游戏结束!")
        import sys
        sys.exit(0)
        #sys是system的缩写,也是python内部提供的一个模块~ ~功能是退出程序,一般括号里写0即可
    # 体质触发的事件
    # 使用 elif 是为了保证每年只触发一个事件!
    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 >= 8 and age >= 6:
            info += "你的父母把你送到更好的学校学习"
            iq += 1
        elif 4 <= home <= 7:
            if gender == "boy":
                info += "你的父母鼓励你多运动,争取成为运动员"
                strong += 1
            else:
                info += "你的父母鼓励你多打扮自己"
                face += 1
        else:
            # 家境 < 4
            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:
            # 无事发生
            pass
    # 打印这一年发生的事情
    print(info)
    print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
    print("------------------------------------------------")
    #为了方便观察,加一个小小的暂停操作
    import time
    time.sleep(1)
    #time 也是python提供的模块
    #sleep 的功能就是让程序暂停一会,再继续执行 1就是1秒

游戏效果图:

游戏如此,人生如此,愿我们都健健康康,幸福快乐!


游戏到这就结束了,人生还在继续,感谢大家的支持!❀

 

目录
相关文章
|
2月前
|
Python
【Python】4. 人生重开模拟器(简易版)
【Python】4. 人生重开模拟器(简易版)
50 2
|
2月前
|
Python
Python人生重开模拟器代码展示
本文主要是人生重开模拟器的代码演示
|
存储 Shell Linux
安卓手机上的终端模拟器Termux,实现了在手机上运行python
安卓手机上的终端模拟器Termux,可以在手机上运行python
1560 2
|
5天前
|
Python
python项目实战——人生重开模拟器
python项目实战——人生重开模拟器
|
2月前
|
Python
[Python] 人生重开模拟器
[Python] 人生重开模拟器
30 0
|
Python
人生重开模拟器(python)-----帮你快速掌握python语法
人生重开模拟器(python)-----帮你快速掌握python语法
174 0
|
安全 测试技术 Android开发
Win10系统下基于Docker构建Appium容器连接Android模拟器Genymotion完成移动端Python自动化测试
Python自动化,大概也许或者是今年最具热度的话题之一了。七月流火,招聘市场上对于Python自动化的追捧热度仍未消减,那么Python自动化到底能帮我们做些什么呢? 第一,Python自动化可以避免熟练工种的重复工作,对于功能相对完整和成熟的软件,每发布一个新的版本,无论是大版本还是小版本,其中大部分功能和界面都几乎和上一个版本相似或完全相同,但所谓向上兼容,你不能因为新功能的产生而不对老版本功能进行测试工作,而这些老功能又在上一个版本上线时测过,所以这部分功能特别适合于自动化测试,从而可以让测试达到测试每个特征的目的。
Win10系统下基于Docker构建Appium容器连接Android模拟器Genymotion完成移动端Python自动化测试
|
编解码 测试技术 开发工具
Python+Appium自动化测试(15)-使用Android模拟器(详细)(一)
做APP的UI自动化测试时,我们往往会使用真机跑自动化测试脚本,因为这样才是最真实的使用场景。但前期调试脚本的话,可以先使用模拟器,这样相对更加方便。 不推荐使用Android SDK里自带模拟器,太卡。 这里介绍两款我正在用于做自动化测试的模拟器:Genymotion 与 夜神模拟器。
Python+Appium自动化测试(15)-使用Android模拟器(详细)(一)
|
2天前
|
设计模式 存储 Python
Python元类大揭秘:从理解到应用,一步步构建你的编程帝国
【7月更文挑战第6天】Python元类是创建类的对象的基石,允许控制类的生成过程。通过自定义元类,可在类定义时动态添加方法或改变行为。
13 0

相关实验场景

更多