人生重开模拟器简单实现(条件,循环)

对于之前所学的知识我们可以去做一个简单的小程序,人生重开模拟器,相信大家都有所了解。我们只需要用到基本的条件以及循环语句就可以简单实现。

我们可以使用简单的打印函数打印一个界面

我们对初始的数据进行输入

但是我们要知道,用户万一手一抖,输错了怎么办,不带重新输入么?怎么重新输入呢?怎么判断呢?

我们选择while循环去解决重新输入的问题,然后我们使用条件语句去判断条件,在什么什么条件下我们选择跳出这次循环进行下次循环,直到所有的数据都输入正确。

之后我们就可以跳出循环了

完成初始属性的设置后,我们进行性别的设置,性别就两个,但是我们是随机生成性别,所以我们要随机生成一些数,对这些数进行判断从而来进行性别的设置。

这时候我们可以使用random.randint(beg,end),他是一个库里的函数,它生成随机数的范围是[beg,end],他会生成这个范围之间的随机整数。

我们使用这个库里的函数我们要用import来进行引用,但是我们的pycharm会在我们写完这个函数是自动帮我们再最上面生成相对应的引用。

我们可以看一下所生成的随机数

随后我们可以用奇数偶数来进行性别的判断,我们可以去保存性别,后面可以用不同性别经历不同的事件。

我们再设置出生点的时候,会选择对家境分档,再不同档位则有不同的家境,并在不同档位进行加成或者衰减。

  • 10 是第一档. 加成最高
  • [7, 9] 是第二档. 也有一些加成
  • [4, 6] 是第三档. 加成较少
  • [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('你出生在三线城市, 你的父母是教师')
        iq += 1
    elif point == 2:
        print('你出生在镇上, 你的父母是医生')
        strong += 1
    else:
        print("你出生在镇上, 你的父母是个体户")
        home += 1
else:
    if 1 <= point <= 2:
        print('你出生在村里, 你的父母是辛苦劳作的农民')
        strong += 1
        face -= 2
    elif 3 <= point <= 4:
        print('你出生在穷乡僻壤, 你的父母是无业游民')
        home -= 1
    else:
        print('你出生在镇上, 你父母感情不和')
        strong -= 1

然后我们就该开始每一年怎么怎么样,这不就是循环结构么,我们吧人生分成四个阶段,幼年阶段 [1, 10] ,青年阶段 [11, 20] ,壮年阶段 [20, 50] ,老年阶段 50 岁以上。不同阶段对应不同的事件。

我们先来分析一下逻辑:

使用 for 循环, 按照年龄循环起来。

  • 针对每一年, 先掷一次 [1, 3] 的色子, 根据不同的随机数值, 来触发不同的事件。
  • 根据性别, 年龄, 各种属性, 来触发不同的事件。
  • 这里都使用 if - else 的方式来组织. 不同的事件可能会对属性有正面/负面的影响。
  • 在每一年的最后, 打印这一年遇到的事情。
  • 如果夭折, 则直接 sys.exit(0) 退出程序。
  • 使用 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 += 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 += '你和别的小朋友经常打架'
                iq -= 1
                strong += 1
            else:
                info += '你经常被别的小朋友欺负'
                strong -= 1
# 智商触发的事件
    elif iq < 5:
        info += '你看起来傻傻的, '
        if home >= 8 and age >= 6:
            info += '你的父母给你送到更好的学校学习'
        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:
        info += '你健康成长, '
        if point == 1:
            info += '看起来更聪明了'
            iq += 1
        elif point == 2:
            info += '看起来更好看了'
            face += 1
        else:
            info += '看起来更结实了'
            strong += 1
    print('-------------------------------------------')
    print(info)
    print(f'strong={strong}, face={face}, iq={iq}, home={home}')
    time.sleep(1)

我们还可以写出更多的逻辑,使这个游戏更加的丰富,当然我们也学习了三个库的的函数,我们再私下的学习也可以多加使用。

下面是运行结果,很显然是我写的情况较少,并且开局数值并不极端导致的,大家可以自己多写点玩玩。那么更多的情况我就不罗列了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值