3.4 next_question()函数
next_question()函数的作用是显示下一个题目。当用户按下“确认”按键后,将会显示下一个题目,代码如下所示。
if self.scored or self.failed:self.scored = Falseself.failed = Falseself.correct = 0self.colors = [white,white,white,white]self.current += 6if 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 = Trueself.score += 1else:self.failed = Trueself.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()