• 改进Python文字小游戏(4)


    此文转载自:https://blog.csdn.net/qq_45742155/article/details/110184544#commentBox

    前面,我们讲了变量和字符串的一些种类。朋友们,还记得我们之前的那个智障的文字小游戏吗?今天,我们要做的第一件事就是来改进我们的文字小游戏,至于第二件事嘛,先让我卖个关子,众位客官,注意咯!

    1)首先,根据一些用户的反馈,我们的游戏主要有三个方面的不足:
    ①猜错的时候程序应该有提示(比如告诉用户数字猜大了或者是猜小了)
    ②游戏每次执行的时候,用户只能猜一次,应该提供多次机会给用户去猜测
    ③游戏每次运行的答案是一致的,很容易导致答案的外泄,所以我们需要把这个答案设置成随机的

    所以,我们根据这三个要求来实现一个更人性化的文字小游戏吧!

    第一步:
    要实现这个要求,我们要介绍一下条件分支的概念:
    这个基本模块是:

    if 条件:
    缩进 条件为真时执行的操作
    else:
    缩进 条件为假时执行的语句

    所以实现后的代码是:

    print('---------欢迎来到王者荣耀---------')
    guess = input('请输入你想要输入的数字:')
    temp = int(guess)
    
    if temp == 8:
        print('恭喜你!猜对了')
        print('游戏结束!')
    
    else:
        if temp > 8:
            print('哥,大了大了~~')
    
        else:
            print('嘿,小了小了~')
    print('游戏结束!')
    

    这个就基本实现了我们的第一个要求:玩游戏的时候能够提示猜大或者是猜小的信息

    那我们现在就来看一下第二个要求,要实现不止一次的游戏体验机会,这个该怎么办呢?莫慌,我们Python有while的循环结构:
    这个基本模块是:

    while 条件:
    缩进 条件为真时执行的语句

    现在我们就来看一下我们的代码吧:

    print('---------欢迎来到王者荣耀---------')
    temp = int(input('请输入你想要输入的数字:'))
    while temp != 8:
        if temp > 8:
            print('哥,大了大了~~')
    
        else:
            print('嘿,小了小了~')
        temp = int(input('请重新输入一个数字:'))
        if temp == 8:
            print('恭喜你!猜对了,游戏结束!')
            
        else:
            if temp > 8:
                print('哥,大了大了~~')
    
            else:
                print('嘿,小了小了~')
    print('游戏结束!')
    

    好了,讲到这里,我们再来实现第三个要求吧:
    这里我们要引入一个随机的函数模块:random,这也是一个常见的BIF,它里面有一个randint函数,就是用来产生随机数的:

    import random print('---------欢迎来到王者荣耀---------')
     temp = int(input('请输入你想要输入的数字:')) 
    reality = random.randint(1,10) if temp > reality:
        print('哥,大了大了~~')
    
    elif temp < reality:
        print('嘿,小了小了~')
    
    else:
        print('恭喜你!答对了!')
         while temp != reality:
        temp = int(input('请重新输入一个数字:'))
        if temp == reality:
            print('恭喜你!猜对了,游戏结束!')
            
        else:
            if temp > reality:
                print('哥,大了大了~~')
    
            else:
                print('嘿,小了小了~') print('游戏结束!')
    

    当然,我们可以更加人性化一点:
    ①我们可以设置答错上限是什么,超过这个上限,用户就不能继续玩下去了
    ②我们可以设置让界面隔一段时间再出现——不是我们一打完信息后,下一句话就已经出现了,我们可以让游戏变成交互式的

    针对第一点,我们就以三次为例吧(这里,我们还是不可避免的用到while循环):
    times表示次数
    代码如下:

    import random
    print('---------欢迎来到王者荣耀---------')
    temp = int(input('请输入你想要输入的数字:'))
    times = 3
    reality = random.randint(1,10)
    if temp > reality:
        print('哥,大了大了~~')
    
    elif temp < reality:
        print('嘿,小了小了~')
    
    else:
        print('恭喜你!答对了!')
    times -= 1
    while temp != reality:
        while times > 0:
            temp = int(input('请重新输入一个数字:'))
            if temp == reality:
                print('恭喜你!猜对了,游戏结束!')
                times -= 1
                    
            else:
                if temp > reality:
                    print('哥,大了大了~~')
                    times -= 1
                else:
                    print('嘿,小了小了~')
                    times -= 1
        else:
            print('您的次数已经耗尽!')
            break
    print('游戏结束!')
    

    至于第二点,我们又需要引入一个新的BIF——time函数
    代码如下:

    import random
    import time
    print('---------欢迎来到王者荣耀---------')
    time.sleep(1)
    temp = int(input('请输入你想要输入的数字:'))
    times = 3
    reality = random.randint(1,10)
    if temp > reality:
        print('哥,大了大了~~')
    
    elif temp < reality:
        print('嘿,小了小了~')
    
    else:
        print('恭喜你!答对了!')
    times -= 1
    while temp != reality:
        while times > 0:
            temp = int(input('请重新输入一个数字:'))
            if temp == reality:
                print('恭喜你!猜对了,游戏结束!')
                times -= 1
                    
            else:
                if temp > reality:
                    print('哥,大了大了~~')
                    times -= 1
                else:
                    print('嘿,小了小了~')
                    times -= 1
        else:
            print('您的次数已经耗尽!')
            break
    time.sleep(1.2)
    print('游戏结束!')
    

    其中,time.sleep()后面括号里既可以填浮点数又可以填整数。
    另外,那个random.randint(1,10)包括1但是不含10

    好了,到这里,你已经基本掌握Python最基本最基本的知识了,好的,下一期再见!

       

    更多内容详见微信公众号:Python测试和开发

    Python测试和开发

  • 相关阅读:
    struct&Method
    SetFinalizer、runtime.GC
    Map(没有写底层)
    数组和切片
    函数
    指针、Time
    字符串、strings、strconv
    基本类型和运算符
    第二阶段的事后诸葛亮
    第二个冲刺阶段第10天
  • 原文地址:https://www.cnblogs.com/phyger/p/14054731.html
Copyright © 2020-2023  润新知