使用Python语言实现智力问答小游戏功能

  介绍

今天就跟大家聊聊有关使用Python语言实现智力问答小游戏功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

使用Python语言实现智力问答小游戏功能“> <br/> </p> <p> </p> <p>本项目使用SQLite建立问答题库,每道题包括4个选项答案(3个正确答案,1个错误答案)。每道题都有一定分值,根据用户的答题效率,自动计算出最后的答题成绩。</p> <p> <img src=

<强>

使用SQLite数据库建立题库,本质上就是SQL语句,创建考试表,实现代码如下所示:

#导入SQLite驱动   进口sqlite3   #连接到SQLite数据库,数据库文件是test.db   #如果文件不存在,会自动在当前目录创建:   康涅狄格州=sqlite3.connect (& # 39; test2.db& # 39;)   光标=conn.cursor() #创建一个游标:   从exam" # cursor.execute(“删除)   #执行一条SQL语句,创建考试表:   cursor.execute(& # 39;创建表(考试)([问题]VARCHAR (80) NULL, Answer_A VARCHAR(1)空,Answer_B VARCHAR(1)空,Answer_C VARCHAR(1)空,Answer_D VARCHAR(1)空,[right_Answer] VARCHAR(1)零)& # 39;)   #继续执行一条SQL语句,插入一条记录:   cursor.execute(“插入考试(Answer_A,问题Answer_B、Answer_C Answer_D, right_Answer)值(& # 39;哈雷慧星的平均周期为& # 39;,& # 39;54年& # 39;,& # 39;56年& # 39;,& # 39;73年& # 39;,& # 39;83年& # 39;,& # 39;c # 39;)“)   cursor.execute(“插入考试(Answer_A,问题Answer_B、Answer_C Answer_D, right_Answer)值(& # 39;夜郎自大中“夜郎”指的是现在哪个地方? & # 39;,& # 39;贵州& # 39;,& # 39;云南& # 39;,& # 39;广西& # 39;,& # 39;福建& # 39;,& # 39;一个# 39;)“)   cursor.execute(“插入考试(Answer_A,问题Answer_B、Answer_C Answer_D, right_Answer)值(& # 39;在中国历史上是谁发明了麻药& # 39;,& # 39;孙思邈& # 39;,& # 39;华佗& # 39;,& # 39;张仲景& # 39;,& # 39;扁鹊& # 39;,& # 39;b # 39;)“)   cursor.execute(“插入考试(Answer_A,问题Answer_B、Answer_C Answer_D, right_Answer)值(& # 39;京剧中花旦是指& # 39;,& # 39;年轻男子& # 39;,& # 39;年轻女子& # 39;,& # 39;年长男子& # 39;,& # 39;年长女子& # 39;,& # 39;b # 39;)“)   cursor.execute(“插入考试(Answer_A,问题Answer_B、Answer_C Answer_D, right_Answer)值(& # 39;篮球比赛每队几人? & # 39;,& # 39;4 & # 39;,& # 39;5 & # 39;,& # 39;6 & # 39;,& # 39;7 & # 39;,& # 39;b # 39;)“)   cursor.execute(“插入考试(Answer_A,问题Answer_B、Answer_C Answer_D, right_Answer)值(& # 39;在天愿作比翼鸟,在地愿为连理枝。讲述的是谁的爱情故事? & # 39;,& # 39;焦钟卿和刘兰芝& # 39;,& # 39;梁山伯与祝英台& # 39;,& # 39;崔莺莺和张生& # 39;,& # 39;杨贵妃和唐明皇& # 39;,& # 39;d # 39;)“)   #通过rowcount获得插入的行数:   打印(cursor.rowcount) # 1   #关闭游标:   cursor.close ()   #提交事务:   conn.commit ()   #关闭连接:   conn.close ()

从建立好的题库数据库中读取试题信息,callNext()函数实现判断用户选择答案的正误,正确则加10分,错误不加分。并判断用户是否做完,如果没做完则将下一题的题目信息显示到timu标签,而4个选项显示到节目迎合广大~这4个单选按钮上;callResult()函数在GUI上显示此时答题得分,实现代码如下所示:

康涅狄格州=sqlite3.connect (& # 39; test2.db& # 39;)
  光标=conn.cursor ()
  #执行查询语句:
  cursor.execute(& # 39;从考试# 39;选择*)
  #获得查询结果集:
  值=cursor.fetchall ()
  print(值)
  
  打印(& # 39;记录数:& # 39;,len(值))
  k范围内(len(值)):
  打印(k值[k] [0])
  cursor.close ()
  conn.close ()
  
  def callNext ():
  全球k
  全球得分
  useranswer=r.get ()
  print (r.get()) #获取被选中单选按钮变量的值
  如果useranswer==值[k] [5]:
  showinfo(“恭喜”,“恭喜你对了!“)
  +=10分
  其他:
  showinfo(“遗憾“,“遗憾你错了!“)
  k=k + 1
  如果k>=len(值):
  showinfo(“提示“,“题目做完了“)
  返回
  #显示下一题
  timu [“text"] [k][0]=值
  迎合广大[“text"]=值[k] [1]
  radio2 [“text"]=值[k] [2]
  radio3 [“text"]=值[k] [3]
  节目(“text")=值[k] [4]
  r.set (& # 39; e # 39;)
  
  def callResult ():
  showinfo(“你的得分“,str(分数))

使用Python语言实现智力问答小游戏功能