python智力问答游戏

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sqlite3
import tkinter
from tkinter import *
from tkinter.messagebox import *

conn = sqlite3.connect('test2.db')
cursor = conn.cursor()

# 检查表是否已经存在
cursor.execute('''SELECT count(name) FROM sqlite_master WHERE type='table' AND name='exam' ''')
if cursor.fetchone()[0] == 1:
print('Table exam already exists.')
else:
# 创建表
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)''')
print('Table exam created successfully.')

# 插入数据
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')")
print(cursor.rowcount)

# 关闭Cursor:
cursor.close()
# 提交事务:
conn.commit()
# 关闭数据库连接
conn.close()

conn = sqlite3.connect('test2.db')
cursor = conn.cursor()
# 执行查询语句:
cursor.execute('select * from exam')
# 获得查询结果集:
values = cursor.fetchall()
print(values)


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))


root = Tk()
root.title('Python智力问答游戏')
root.geometry("500x200")
r = StringVar()
r.set('E')

# 设置初始值
k = 0
score = 0
timu = Label(root, text=values[k][0])
timu.pack()
f1 = Frame(root)
f1.pack()
radio1 = Radiobutton(f1, variable=r, value='A', text=values[k][1])
radio1.pack()
radio2 = Radiobutton(f1, variable=r, value='B', text=values[k][2])
radio2.pack()
radio3 = Radiobutton(f1, variable=r, value='C', text=values[k][3])
radio3.pack()
radio4 = Radiobutton(f1, variable=r, value='D', text=values[k][4])
radio4.pack()
f2 = Frame(root)
f2.pack()
Button(f2, text='下一题', command=callNext).pack(side=LEFT)
Button(f2, text='结 果', command=callResult).pack(side=LEFT)
root.mainloop()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值