python智力问答游戏_Python语言编写智力问答小游戏功能
本篇博文将使用Python代码语言简单编写一个轻松益智的小游戏,效果如下所示:
1、设计思路
本项目使用SQLite建立问答题库,每道题包括4个选项答案(3个正确答案,1个错误答案)。每道题都有一定分值,根据用户的答题效率,自动计算出最后的答题成绩。
2、建立题库
使用SQLite数据库建立题库,本质上就是SQL语句,创建exam表,实现代码如下所示:
#导入SQLite驱动
import sqlite3
# 连接到SQLite数据库,数据库文件是test.db
# 如果文件不存在,会自动在当前目录创建:
conn = sqlite3.connect('test2.db')
cursor = conn.cursor()# 创建一个Cursor:
#cursor.execute("delete from exam")
# 执行一条SQL语句,创建exam表:
cursor.execute('CREATE TABLE [exam] ([question] VARCHAR(80) NULL,[Answer_A] VARCHAR(1) NULL,[Answer_B] VARCHAR(1) NULL,[Answer_C] VARCHAR(1) NULL,[Answer_D] VARCHAR(1) NULL,[right_Answer] VARCHAR(1) NULL)')
# 继续执行一条SQL语句,插入一条记录:
cursor.execute("insert into exam (question, Answer_A,Answer_B,Answer_C,Answer_D,right_Answer) values ('哈雷慧星的平均周期为', '54年', '56年', '73年', '83年', 'C')")
cursor.execute("insert into exam (question, Answer_A,Answer_B,Answer_C,Answer_D,right_Answer) values ('夜郎自大中“夜郎”指的是现在哪个地方?', '贵州', '云南', '广西', '福建', 'A')")
cursor.execute("insert into exam (question, Answer_A,Answer_B,Answer_C,Answer_D,right_Answer) values ('在中国历史上是谁发明了麻药', '孙思邈', '华佗', '张仲景', '扁鹊', 'B')")
cursor.execute("insert into exam (question, Answer_A,Answer_B,Answer_C,Answer_D,right_Answer) values ('京剧中花旦是指', '年轻男子', '年轻女子', '年长男子', '年长女子', 'B')")
cursor.execute("insert into exam (question, Answer_A,Answer_B,Answer_C,Answer_D,right_Answer) values ('篮球比赛每队几人?', '4', '5', '6', '7', 'B')")
cursor.execute("insert into exam (question, Answer_A,Answer_B,Answer_C,Answer_D,right_Answer) values ('在天愿作比翼鸟,在地愿为连理枝。讲述的是谁的爱情故事?', '焦钟卿和刘兰芝', '梁山伯与祝英台', '崔莺莺和张生', '杨贵妃和唐明皇', 'D')")
# 通过rowcount获得插入的行数:
print(cursor.rowcount) #1
# 关闭Cursor:
cursor.close()
# 提交事务:
conn.commit()
# 关闭Connection:
conn.close()
3、答题设计
从建立好的题库数据库中读取试题信息,callNext()函数实现判断用户选择答案的正误,正确则加10分,错误不加分。并判断用户是否做完,如果没做完则将下一题的题目信息显示到timu标签,而4个选项显示到radio1~ radio4这4个单选按钮上;callResult()函数在GUI上显示此时答题得分,实现代码如下所示:
conn = sqlite3.connect('test2.db')
cursor = conn.cursor()
# 执行查询语句:
cursor.execute('select * from exam')
# 获得查询结果集:
values = cursor.fetchall()
print(values)
print('记录数:',len(values))
for k in range(len(values)):
print(k,values[k][0])
cursor.close()
conn.close()
def callNext():
global k
global score
useranswer=r.get()
print (r.get()) #获取被选中单选按钮变量值
if useranswer==values[k][5]:
showinfo("恭喜","恭喜你对了!")
score+=10
else:
showinfo("遗憾","遗憾你错了!")
k=k+1
if k>=len(values):
showinfo("提示","题目做完了")
return
#显示下一题
timu["text"]=values[k][0]
radio1["text"]=values[k][1]
radio2["text"]=values[k][2]
radio3["text"]=values[k][3]
radio4["text"]=values[k][4]
r.set('E')
def callResult():
showinfo("你的得分",str(score))
4、GUI设计
最后设计GUI,添加两个Frame组件组件,实现选择答案、确认和查看结果功能,实现代码如下所示:
import tkinter
from tkinter import *
from tkinter.messagebox import *
root=tkinter.Tk()
root.title('Python智力问答游戏')
root.geometry("500x200")
r=tkinter.StringVar()#创建StringVar对象
r.set('E') #设置初始值为'E',初始没选中
k=0
score=0
timu=tkinter.Label(root,text=values[k][0]) #题目
timu.pack()
f1 = Frame(root)#创建第1个Frame组件
f1.pack()
radio1=tkinter.Radiobutton(f1,variable=r,value='A',text=values[k][1])
radio1.pack()
radio2=tkinter.Radiobutton(f1,variable=r,value='B',text=values[k][2])
radio2.pack()
radio3=tkinter.Radiobutton(f1,variable=r,value='C',text=values[k][3])
radio3.pack()
radio4=tkinter.Radiobutton(f1,variable=r,value='D',text=values[k][4])
radio4.pack()
f2 = Frame(root)#创建第2个Frame组件
f2.pack()
Button(f2,text = '下一题',command=callNext).pack(side = LEFT)
Button(f2,text = '结 果',command=callResult).pack(side = LEFT)
root.mainloop()
到此这篇关于Python语言编写智力问答小游戏功能的文章就介绍到这了,更多相关Python 智力问答小游戏内容请搜索龙方网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持龙方网络!
python智力问答游戏_Python语言编写智力问答小游戏功能相关推荐
- 使用C语言编写三子棋小游戏
使用C语言编写三子棋小游戏: 首先进行分析: 1.需要将游戏实现分为三个部分:头文件,函数功能实现,游戏组合测试. 2.游戏可以循环进行,不必多次打开,可采用 do...while循环结构. 3.游戏 ...
- 实用c语言函数源码,C语言编写简单朗读小工具(有源码)
原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...
- c语言案例朗读工具源码,C语言编写简单朗读小工具(有源码)
原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...
- python写安卓游戏_python写lol游戏脚本(用python开发安卓脚本)
python写lol游戏脚本 俾格米人和搅拌机的引擎. python-ogre和panda3d是用c/c编写的,但只提供了一个python接口. 你好,蟒蛇可以在Android上工作. 因为你可以在A ...
- python高级语言应用报告_Python 语言及其应用 - 第一章
1.1:Python是一门动态语言(也被称为脚本语言),是一门非常通用的高级语言. 1.2:关于静态语言与动态语言:静态语言要求你必须声明每个变量的类型:它会使用多少内存以及允许的使用方法.计算机利用 ...
- python最简单的语言_Python语言的简单实用小工具
本文主要向大家介绍了Python语言的简单实用小工具,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 在python进行自动化编写的过程中,常常需要造一些数据,比如,获取随机的合法 ...
- python开发大型游戏_Python也有做大型游戏的潜力?原来我们小看了Python,无所不能...
前言 在小编以前还没怎么接触很多编程语言时,都是认为游戏(端游,手游)都是用C做出来了!不知道大家有没有这么想过,反正我是这样的.后来慢慢接触多了,才知道并不是所有的都是这个样子的! Python也有 ...
- c语言做搬山游戏,C语言实现搬山小游戏,适合新手的项目实战,超易上手!
原标题:C语言实现搬山小游戏,适合新手的项目实战,超易上手! 问题描述 设有n座山,计算机与人作为比赛的双方,轮流搬山.规定每次搬山数不能超过k座,谁搬最后一座谁输. 游戏开始时,计算机请人输入山的总 ...
- C语言可以敲哪些小游戏,C语言可以写哪些小游戏?
C语言可以写哪些小游戏? C语言可以编手机游戏.你叫他去死不过我这有贪吃蛇的代码,你倒可以看看(用TC编译一定过( #包括 #包括 #包括 #包括 #包括 #定义输入7181 #定义ESC 283 # ...
最新文章
- php如何调用c接口无错版
- NLP 的EDA数据增强技术
- window 内核详尽分析
- J2EE从头开始__EJB3
- SpringCloud个人笔记-02-Feign初体验
- mysql数据库查询笔记_MySql数据库基础笔记(一)
- 蒙特卡洛积分(Monte Carlo Integration)应用:利用蒙特卡洛积分生成 McBeth表
- 网络管理:3分钟排障秘技,一招胜过十年功
- python快速编程入门课本中的名片管理器_python——实现名片管理器
- 益智棋类游戏--走四棋儿
- BP神经网络拟合函数
- 带你快速了解ISO27001信息安全管理体系认证
- 如何调用百度地图API---定位、显示热力图、路径导航等(很方便很强大)
- 使用nginx配置服务器80端口指向多个服务,解决微信公众号等平台只能绑定80端口问题。
- 离散型特征编码方式:one-hot与哑变量
- java 第六次实验_操作系统第六次实验报告——使用信号量解决哲学家进餐问题...
- 批量将磁盘上所有文件的路径地址、文件名、扩展名和文件夹名整理到 Excel 表格中
- 概率论及概率图模型基础
- java 车联网_车联网V2X开发
- 考试/答题系统的设计思路