Pygame中Trivia游戏解析6-4

3.3.3 显示题目选项

在显示题目选项时,有三种情况:分别是用户还未选择答案时;用户的答案是正确时;用户的答案是错误时。

(1)用户还未选择答案时

此时,用白色显示四个备选答案,如图4①所示。

图4 题目选项

其对应的代码如下所示。

python 复制代码
print_text(font1, 5, 170, "ANSWERS")
print_text(font2, 20, 210, "1 - " + self.data[self.current+1], self.colors[0])
print_text(font2, 20, 240, "2 - " + self.data[self.current+2], self.colors[1])
print_text(font2, 20, 270, "3 - " + self.data[self.current+3], self.colors[2])
print_text(font2, 20, 300, "4 - " + self.data[self.current+4], self.colors[3])

其中,self.current是题目内容对应的行数,题目的四个选项分别在该行之后的1-4行。

(2)用户的答案是正确时

当用户的答案是正确时,用绿色字体显示该选项,并且会有绿色字体的提示,如图5①和图5②所示。

图5 答案正确时

通过一下代码实现该功能。

python 复制代码
if self.scored:
    self.colors = [white,white,white,white]
    self.colors[self.correct-1] = green
    print_text(font1, 230, 380, "CORRECT!", green)
    print_text(font2, 170, 420, "Press Enter For Next Question", green)

其中,scored是True时表示答案正确,此时将colors的第self.correct项的颜色变为绿色。变量correct的值是通过如下代码获得的。

self.correct = int(self.data[self.current+5])

其中,current表示当前题目内容在data中的行数,接下来的4行是题目的选项,之后的第5行即为正确答案,如图6所示。

图6 题目格式

(3)用户答案是错误时

当用户的答案是正确时,用绿色字体显示正确选项,红色字体显示用户选择的错误选项,并且会有红色字体的提示,如图7①和图7②所示。

图7 答案错误时

通过一下代码实现该功能。

python 复制代码
elif self.failed:
    self.colors = [white,white,white,white]
    self.colors[self.wronganswer-1] = red
    self.colors[self.correct-1] = green
    print_text(font1, 220, 380, "INCORRECT!", red)
    print_text(font2, 170, 420, "Press Enter For Next Question", red)

当failed是True时,表示答案错误,wronganser表示错误答案,correct表示正确答案。

相关推荐
nightunderblackcat18 小时前
新手向:Python制作贪吃蛇游戏(Pygame)
python·游戏·pygame
JosieBook5 天前
【Python】使用Python在线编译器Lightly轻松实现贪吃蛇游戏
python·游戏·pygame
深兰科技7 天前
柳州市委常委、统战部部长,副市长潘展东率队首访深兰科技集团新总部,共探 AI 赋能制造大市与东盟合作新局
人工智能·beautifulsoup·numpy·pyqt·matplotlib·pygame·深兰科技
谷宇.17 天前
【Unity3D实例-功能-拔枪】角色拔枪(三)IK的使用-紧握武器
游戏·unity·c#·unity3d·游戏开发·游戏编程·steam
天庭鸡腿哥17 天前
比Windows系统自带更强大,好用!
windows·django·pygame
AI视觉网奇17 天前
麒麟系统播放图片 速度比较
开发语言·python·pygame
绝缘体118 天前
折扣大牌点餐api接口对接适合本地生活吗?
大数据·网络·搜索引擎·pygame
人工干智能20 天前
pygame的帧处理中,涉及键盘的有`pg.event.get()`与`pg.key.get_pressed()` ,二者有什么区别与联系?
python·游戏·计算机外设·pygame
谷宇.21 天前
【Unity3D实例-功能-拔枪】角色拔枪(二)分割上身和下身
游戏·unity·c#·游戏程序·unity3d·游戏开发·游戏编程
赛博郎中21 天前
pygame小游戏飞机大战_8继承精灵玩家优化
python·pygame