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

原文地址:https://www.cnblogs.com/phyger/p/14053766.html