Pygame中Trivia游戏解析6-5

3.4 next_question()函数

next_question()函数的作用是显示下一个题目。当用户按下“确认”按键后,将会显示下一个题目,代码如下所示。

if self.scored or self.failed:
   self.scored = False
   self.failed = False
   self.correct = 0
   self.colors = [white,white,white,white]
   self.current += 6
   if self.current >= self.total:
         self.current = 0

当scored或者failed有一个是True时,即用户回答了当前题目,把与题目相关的变量恢复初始值,current表示当前题目所在的函数,而下一题目所在的行数应该是当前题目所在的行数加6(6行包括了当前题目内容1行,题目选项4行,正确答案1行,如图6所示)。

3.5 handle_input()函数

该函数的作用是对用户的输入,即用户的答案进行判断。代码如下所示。

if not self.scored and not self.failed:
     if number == self.correct:
         self.scored = True
         self.score += 1
     else:
         self.failed = True
         self.wronganswer = number

当变量scored和failed都不是False时,即用户还没给出题目的答案时,判断用户给出的题目number与题目的正确答案correct是否相等。如果相等,则说明用户的答案是正确的否则说明用户的答案是错误的。

4 Trivia的主程序

在Trivia的主程序中,对程序所需的变量进行初始化,之后创建了Trivia类的对象,代码如下所示。

trivia = Trivia("trivia_data.txt")

其中,“trivia_data.txt”指定了保存题目的文件。之后用while True无限循环处理用户的输入,根据不同的输入进行不同的处理,代码如下所示。

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
        elif event.type == KEYUP:
            if event.key == pygame.K_ESCAPE:
                sys.exit()
            elif event.key == pygame.K_1:
                trivia.handle_input(1)
            elif event.key == pygame.K_2:
                trivia.handle_input(2)
            elif event.key == pygame.K_3:
                trivia.handle_input(3)
            elif event.key == pygame.K_4:
                trivia.handle_input(4)
            elif event.key == pygame.K_RETURN:
                trivia.next_question()

相关链接3:

Pygame中获取键盘按键的方法_pygame键盘输入_棉猴的博客-CSDN博客

最后,通过Trivia类的对象调用该类的show_question()函数来显示题目,代码如下所示。

trivia.show_question()

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/132640788