适合新手的python练习(3)

猜词语游戏 之 你做我猜

游戏规则:

假设有6位小朋友,总共分为三组队伍,每组队伍只有两个人,三组队伍依次开始游戏,队伍中有一人要根据程序给出的词语尽可能的去描绘,好让队友猜出词语,描绘的时候可以使用肢体语言或口头语言向猜词者传达信息,但口头语言不能与词语的内容相关,只能对词语进行描述表达,每组队伍的游戏时间为1分钟,游戏结束后统计答对的题数,最后由答对数量最多的那组队伍获得胜利。

实现过程:

因为整个比赛共有三组队伍参加,每组队伍玩的游戏都是一样的,那么三组队伍可以看作是三次遍历循环的函数。在这个函数里,每次循环代表当前队伍的游戏开始和结束,游戏开始与结束也可以看成另外一个函数。简单来讲,三组队伍看成函数a,猜词语游戏看成函数b,我们需要在函数a里调用函数b。

具体代码如下:

import time

# 每组队伍的游戏过程
def guess(i):
    correct = 0
    start = time.time()

    for k in range(len(i)):
        # 显示词语题目
        print(('%d.%s') % (k + 1, i[k]))
        flag = input('请答题,答对请输入y,跳过请输入任意键')
        sec = time.time() - start
        # 统计用时
        if (50 <= sec <= 60):
            print('还有10秒钟')
        if (sec >= 60):
            print('时间到!游戏结束')
            break
        # 答对就累加1
        if (flag == 'y'):
            correct += 1
            continue
        else:
            continue
    return correct

# 遍历每组队伍,调用answer函数实现游戏
def team(guessWord):
    for i in guessWord:
        correct = guess(i)
        str_temp = ('恭喜你,你答对了%d道题') % (correct)
        print(str_temp)
        print('##############下一组开始##############')

# 主程序定义游戏内容,然后调用team函数开始游戏
if __name__ == '__main__':
    guessWord = []
    guessWord.append(['害羞', '金鸡独立', '狼吞虎咽', '闻鸡起舞', '手舞足蹈', '科比', '英雄联盟'])
    guessWord.append(['扭秧歌', '偷看美女', '大摇大摆', '回眸一笑', '过河拆桥', '自恋', '吃撑了'])
    guessWord.append(['狗急跳墙', '捧腹大笑', '目不转睛', '愁眉苦脸', '暗恋', '臭袜子', '表白'])
    team(guessWord)

代码解析:

从上述代码可以看到,我们定义的函数team和guess分别代表队伍和游戏。

首先分析函数guess:

(1)函数guess是整段代码中最底层的函数,同时也是实现猜词语的游戏功能。

(2)函数参数i代表当前队伍的词语题目,函数变量correct和start代表答对的题目数和开始时间。

(3)函数里面的循环是将词语的题目遍历并输出,每条题目通过描绘者输入的内容来判断当前题目是答对或跳过。

(4)在这个遍历过程中加入时间的计算和判断,超时就会自动终止循环。

(5)如果答对了题目,函数变量correct累加1,否则进行下一次循环。

然后分析函数team:

(1)函数team是通过循环词组guessWord,guessWord是该函数参数并且是一个长度为3的二维列表,也就是说列表有三个元素,每个元素是一个列表。

(2)每次循环guessWord得到它的元素值,然后调用guess函数并将元素值作为函数参数。

(3)最后获取guess函数的返回值,返回值是代表当前队伍答对的题目数量。

最后在主程序中,定义guessWord列表并设置列表的元素值然后调用team函数并将列表guessWord传递进去。

在这里插入图片描述

你可能感兴趣的:(python)