0


Python---人生重开模拟器(简版)

专栏:python
个人主页:HaiFan.
专栏简介:本专栏主要更新一些python的基础知识,也会实现一些小游戏和通讯录,学时管理系统之类的,有兴趣的朋友可以关注一下。

人生重开模拟器


思维导图

在这里插入图片描述

前言

前面我们已经学了python中的顺序,选择,循环语句以及break和continue的使用,下面根据这几个语句,来讲解一个代码案例


一、设置初始属性

相信大家都玩过人生重开模拟器这样类型的小游戏。
在游戏中,一般会有四个属性

  1. 颜值(face)
  2. 体质(strong)
  3. 智力(iq)
  4. 家境(home)

在这里可以约定一下属性的范围,以及4个属性的总和不能超过多少。
我们约定属性的范围为1-10,总和不得超过20.

1.游戏标题

在这里可以先把游戏的标题打印在开头

print("******************************************")print("                                          ")print("            人生重开模拟器                   ")print("                                          ")print("         花有重开日 人无在少年                ")print("                                          ")print("******************************************")

在这里插入图片描述

2.属性的初始化

这四个属性可以由玩家自己输入,这就用到了之前讲到的

input

函数,通过这个函数,来完成属性的初始化。

print("请设置初始属性(可用属性值:20)")
 face =int(input("设定颜值(1-10)"))
 iq =int(input("设定智力(1-10)")) 
 strong =int(input("设定体质(1-10)"))   
 home =int(input("设定家境(1-10)"))

这样就完成了属性的输入,这样并不完善,前面我们已经约定过了,属性不得超过多少,总和不得超过多少,所以下面要用我们学到过的

if-elif-else

语句,对这四个属性和总和进行判断。

if face <1or face >10:print("颜值设置错误")continueelif iq <1or iq >10:print("智力设置错误")continueelif strong <1or strong >10:print("体质设置错误")continueelif home <1or home >10:print("家境设置错误")continueelif face + iq + strong + home >20:print("总属性超过20")continueprint("初始属性设置完毕")print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")

每当某一个属性不符合的时候,就把原因打印的屏幕上并重新输入属性值,如果符合约定,则把四个属性值打印在屏幕上。


当某个判断出现错误的时候,代码会直接结束程序,而不会让玩家循环输出,这是因为缺少了一个循环,那么我们就要设置一个能够使得属性初始化但不符合约定,就要让玩家重新输入属性值的功能。这个时候就用到了

while循环
whileTrue:print("请设置初始属性(可用属性值:20)")
    face =int(input("设定颜值(1-10)"))
    iq =int(input("设定智力(1-10)"))
    strong =int(input("设定体质(1-10)"))
    home =int(input("设定家境(1-10)"))if face <1or face >10:print("颜值设置错误")continueelif iq <1or iq >10:print("智力设置错误")continueelif strong <1or strong >10:print("体质设置错误")continueelif home <1or home >10:print("家境设置错误")continueelif face + iq + strong + home >20:print("总属性超过20")continueprint("初始属性设置完毕")print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")

当所有判断都满足约定的时候,就不能在继续循环了,要结束程序,这个时候就

break

就派上了用场,满足判定,直接跳出

while

循环。

在上面这个代码尾部加上

break

即可

注意break的位置要缩进

在这里插入图片描述

二、设置性别

设置性别是一个有意思的话题,性别一定要做到随机,设置随机数就用到了一个函数

random.randint

,这个函数是python中自带的模块,使用前要先调用一下这个模块

import random

通过

 random.randint(1,6)

可以生成一个1-6的随机整数。

  1. 如果是单数:男孩
  2. 如果是双数:女孩

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

point = random.randint(1,6)# print(f'随机数为:{point}')if point %2==1:
    gender ="boy"print("你是个男孩.")else:
    gender ="girl"print("你是个女孩.")

在这里插入图片描述

三、设置出生点

首先按照家境可以把出生点分为4部分

  1. 10是第一部分,家境最好,加成也最高
  2. 7-9第二部分,也有一些加成
  3. 4-6第三部分,加成较少
  4. 1-4第四部分,会扣掉属性

当然,大家在自己写的时候,可以多写几个部分,让游戏充满更多的可能。


然后,在生成1-3之间的随机数,每一个数字代表一种情况。

point = random.randint(1,3)if home ==10:#第一部分print("你出生在帝都,父母是世界首富.")
    home +=1
    face +=1
    iq +=1elif home >=7and home <=9:#第二部分if point ==1:print("你出生在一线城市,父母是医生.")
        face +=2elif point ==2:print("你出生在一线城市,父母是资深程序员.")
        iq +=2else:print("你出生在一线城市,父母是健身教练.")
        strong +=3
        face +=1
        iq -=1elif home >=4and home <=6:#第三部分if point ==1:print("你出生在三线城市,父母是企业管理.")
        iq +=1elif point ==2:print("你出生在三线城市,父母是小学老师.")
        iq +=1else:print("你出生在三线城市,父母是自己开店做生意.")
        home +=1else:#第四部分if point ==1:print("你出生在农村,父母是农民.")
       strong +=2
       face -=1elif point ==2:print("你出生在山里,父母是猎人.")
       strong +=2
       home -=1
       face -=1else:print("你出生在小镇上,父母是镇长.")
       face +=1
       home +=1print(f"颜值:{face},体量:{strong},智力:{iq},家境:{home}")

四、针对每一岁,自动生成人生经历

按照年龄可以把人生分为四个截断

  1. 幼年
  2. 青年
  3. 壮年
  4. 老年

每个截断会有不同的事情发生,也可能会有一些机遇。
例如:幼年截断,智力,颜值,体质等会发生变化,在这里可以展开事件的发生。
此处只写幼年经历:
因为是每一年,可以用

for循环展开

,把每一年的经历,用字符串进行拼接,循环到最后,输出字符串即可,针对事件的发生,可以用随机数,根据数字来发生事件,也可以根据性别,颜值,体质等来触发事件,不同的事件有不同的影响,如果得病去世,可以直接用

sys.exit(0)

退出程序,使用

time.sleep(1)

可以使程序暂停一秒,便于观察。

for age inrange(1,11):#把一整年的打印都整理到一个字符串中,在这一年的结尾统一打印
    info =f'你今年{age}岁'#生成一个一到三的随机整数
    point = random.randint(1,3)#接下来编写各种事件的代码#性别触发的事件if gender =='girl'and home <=3and point ==1:
        info +='你的家里人重男轻女思想非常严重,把你丢弃了.'print("游戏结束.")
        sys.exit(0)#体质触发事件elif strong <6and point <3:
        info +='你生了一场病.'if home >=5:
            info +='在父母的照顾下,你康复了.'
            strong +=1
            home -=1else:
            info +='父母没时间管你,你的情况更糟糕了.'
            strong -=1# 颜值触发事件elif face <=4and age >=7:
        info +='你长的太丑了,别的小朋友不和你一起玩.'if iq >5:
            info +='你决定用学习填充自己.'
            iq +=1else:if gender =='boy':
                info +='你和别的小朋友打架.'
                strong +=1
                iq -=1else:
                info +='你经常被别的小朋友欺负.'
                strong -=1#智商触发的事件elif iq <5:
        info +='你看起来傻乎乎的.'if home >=8and age >=6:
            info +='你的父母把你送到更好的学校学习.'
            iq +=1elif4<= home <=7:if gender =='boy':
                info +='你的父母鼓励你多运动,争取成为运动健将.'
                strong +=1else:
                info +='你的古父母鼓励你多打扮自己.'
                face +=1else:
            info +='你的父母经常为此吵架.'if point ==1:
                strong -=1elif point ==2:
                iq -=1else:pass#健康成长else:
        info +='你健康成长.'if point ==1:
            info +='你看起来更结实了.'
            strong +=1elif point ==2:
            info +='你看起来更好看了.'
            face +=1else:pass#打印这一年发生的事情print(info)print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")print("---------------------------------------------------------------")
    time.sleep(1)

在这里插入图片描述

在这里插入图片描述

总结(附代码)

在这里,并不把四个截断全部写完,只写一个幼年阶段。把这一篇文章看完,相信大家有能力自行实现后续内容,让游戏变得更完整。

注:在使用sys.exit和time.sleep的时候别忘了调用一下
import sys
import time

"""
                人生重开模拟器
                花有重开日,人无在少年
"""import random
import sys
import time

print("******************************************")print("                                          ")print("            人生重开模拟器                   ")print("                                          ")print("         花有重开日 人无在少年                ")print("                                          ")print("******************************************")whileTrue:print("请设置初始属性(可用属性值:20)")
    face =int(input("设定颜值(1-10)"))
    iq =int(input("设定智力(1-10)"))
    strong =int(input("设定体质(1-10)"))
    home =int(input("设定家境(1-10)"))if face <1or face >10:print("颜值设置错误")continueelif iq <1or iq >10:print("智力设置错误")continueelif strong <1or strong >10:print("体质设置错误")continueelif home <1or home >10:print("家境设置错误")continueelif face + iq + strong + home >20:print("总属性超过20")continueprint("初始属性设置完毕")print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")break

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

point = random.randint(1,3)if home ==10:print("你出生在帝都,父母是世界首富.")
    home +=1
    face +=1
    iq +=1elif home >=7and home <=9:if point ==1:print("你出生在一线城市,父母是医生.")
        face +=2elif point ==2:print("你出生在一线城市,父母是资深程序员.")
        iq +=2else:print("你出生在一线城市,父母是健身教练.")
        strong +=3
        face +=1
        iq -=1elif home >=4and home <=6:if point ==1:print("你出生在三线城市,父母是企业管理.")
        iq +=1elif point ==2:print("你出生在三线城市,父母是小学老师.")
        iq +=1else:print("你出生在三线城市,父母是自己开店做生意.")
        home +=1else:if point ==1:print("你出生在农村,父母是农民.")
       strong +=2
       face -=1elif point ==2:print("你出生在山里,父母是猎人.")
       strong +=2
       home -=1
       face -=1else:print("你出生在小镇上,父母是镇长.")
       face +=1
       home +=1print(f"颜值:{face},体量:{strong},智力:{iq},家境:{home}")for age inrange(1,11):
    
    info =f'你今年{age}岁'
    
    point = random.randint(1,3)if gender =='girl'and home <=3and point ==1:
        info +='你的家里人重男轻女思想非常严重,把你丢弃了.'print("游戏结束.")
        sys.exit(0)elif strong <6and point <3:
        info +='你生了一场病.'if home >=5:
            info +='在父母的照顾下,你康复了.'
            strong +=1
            home -=1else:
            info +='父母没时间管你,你的情况更糟糕了.'
            strong -=1elif face <=4and age >=7:
        info +='你长的太丑了,别的小朋友不和你一起玩.'if iq >5:
            info +='你决定用学习填充自己.'
            iq +=1else:if gender =='boy':
                info +='你和别的小朋友打架.'
                strong +=1
                iq -=1else:
                info +='你经常被别的小朋友欺负.'
                strong -=1elif iq <5:
        info +='你看起来傻乎乎的.'if home >=8and age >=6:
            info +='你的父母把你送到更好的学校学习.'
            iq +=1elif4<= home <=7:if gender =='boy':
                info +='你的父母鼓励你多运动,争取成为运动健将.'
                strong +=1else:
                info +='你的古父母鼓励你多打扮自己.'
                face +=1else:
            info +='你的父母经常为此吵架.'if point ==1:
                strong -=1elif point ==2:
                iq -=1else:passelse:
        info +='你健康成长.'if point ==1:
            info +='你看起来更结实了.'
            strong +=1elif point ==2:
            info +='你看起来更好看了.'
            face +=1else:passprint(info)print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")print("---------------------------------------------------------------")
    time.sleep(1)
标签: python 开发语言

本文转载自: https://blog.csdn.net/weixin_73888239/article/details/128732979
版权归原作者 HaiFan. 所有, 如有侵权,请联系我们删除。

“Python---人生重开模拟器(简版)”的评论:

还没有评论