zoukankan      html  css  js  c++  java
  • 改进Python文字小游戏(4)

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

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

    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测试和开发

  • 相关阅读:
    LeetCode Power of Three
    LeetCode Nim Game
    LeetCode,ugly number
    LeetCode Binary Tree Paths
    LeetCode Word Pattern
    LeetCode Bulls and Cows
    LeeCode Odd Even Linked List
    LeetCode twoSum
    549. Binary Tree Longest Consecutive Sequence II
    113. Path Sum II
  • 原文地址:https://www.cnblogs.com/phyger/p/14053766.html
Copyright © 2011-2022 走看看