文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PYTHON-“人生重开模拟器“

2023-09-14 08:14

关注

🚀write in front🚀
🔎大家好,我是Aileen★。希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎
🆔本文由 Aileen_0v0★ 原创 CSDN首发🐒 如需转载还请通知⚠
📝个人主页:Aileen_0v0★—CSDN博客
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
📣系列专栏:Aileen_0v0★的PYTHON学习系列专栏——CSDN博客
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本

 

游戏页面

 

 

 

 

游戏结果 

游戏实现思路

 现在我们利用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 randompoint=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 += 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}")

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

补充:在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 randompoint=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 += 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}")#幼年阶段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秒

游戏效果图:

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


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

来源地址:https://blog.csdn.net/Aileenvov/article/details/132567597

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯