Python—人生重开模拟器

代码实现

#人生重开模拟器
import random
import sys
import time

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,一旦某个条件满足,即输入错误
    #就会从头再来也就没机会执行后续的条件判定
    if face < 1 and face > 10:
        print('颜值输入有误!')
        continue
    if strong < 1 and face > 10:
        print('体质输入有误!')
        continue
    if iq < 1 and face > 10:
        print('智力输入有误!')
        continue
    if home < 1 and face > 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]随机整数
#此处的random是一个Python中的模块,也就是别人写好的代码,直接给我们来用
#在Python中,如果想引入其他模块,需要先使用import语句,把模块名字导入进来
#PyCharm可以在开头自动导入,但有时不够准确,需要手动导入
point = random.randint(1,6)
if point % 2 == 1:
    gender = 'boy'
    print('你是个男孩')
else:
    gender = 'girl'
    print('你是个女孩')

#设定出生地
#家境10第一档,带来属性加成
#家境9-7第二档,带来部分属性加成
#家境6-4第三档,带来少数属性加成
#家境3-1第四档,扣属性
point = random.randint(1,3)
if home == 10:
    print('出生在帝都')
    print('你的父母是高官')
    home += 1
    iq += 1
    face += 1
elif 7 <= home <= 9:
    print('出生在大城市')
    if point == 1:
        print('父母是公务员')
        face += 2
    elif point == 2:
        print('父母是博士教授')
        iq += 2
    elif point == 3:
        print('父母是企业高管')
        home += 2
elif 4 <= home <= 6:
    if point == 1:
        print('出生在镇上')
        print('你的父母是店员')
        home += 1
    elif point == 2:
        print('出生在三线城市')
        print('你的父母是老师')
        iq += 1
    elif point == 3:
        print('出生在二线城市')
        print('你的父母是医生')
        strong += 1
elif 3 <= home <= 1:
    print('出生在农村')
    if point == 1:
        print('你的父母是无业游民')
        home -= 1
        iq += 1
    elif point == 2:
        print('你的父母是农民')
        strong += 2
        face -= 1
    elif point == 3:
        print('你的父母是村里暴发户')
        home += 2
        iq -= 1
print(f'颜值:{face};体质:{strong};智力:{iq};家境:{home}')

#幼年阶段
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是system的缩写,也是Python内部的一个模块
        #作用是退出程序,参数一般写0
        sys.exit(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:
            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(' --------------------------------------- ')
    #也是一个模块
    #暂停1秒
    time.sleep(1)

运行结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值