游戏规则:
假设有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传递进去。