最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python語言編寫智力問答小游戲功能

 更新時間:2020年10月13日 09:52:16   作者:不脫發(fā)的程序猿  
這篇文章主要介紹了使用Python代碼語言簡單編寫一個輕松益智的小游戲,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

本篇博文將使用Python代碼語言簡單編寫一個輕松益智的小游戲,效果如下所示:

1、設計思路

本項目使用SQLite建立問答題庫,每道題包括4個選項答案(3個正確答案,1個錯誤答案)。每道題都有一定分值,根據(jù)用戶的答題效率,自動計算出最后的答題成績。

2、建立題庫

使用SQLite數(shù)據(jù)庫建立題庫,本質(zhì)上就是SQL語句,創(chuàng)建exam表,實現(xiàn)代碼如下所示:

#導入SQLite驅(qū)動
import sqlite3 
# 連接到SQLite數(shù)據(jù)庫,數(shù)據(jù)庫文件是test.db
# 如果文件不存在,會自動在當前目錄創(chuàng)建:
conn = sqlite3.connect('test2.db')
cursor = conn.cursor()# 創(chuàng)建一個Cursor:
#cursor.execute("delete from exam")
# 執(zhí)行一條SQL語句,創(chuàng)建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)')
# 繼續(xù)執(zhí)行一條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 ('夜郎自大中“夜郎”指的是現(xiàn)在哪個地方?', '貴州', '云南', '廣西', '福建', 'A')")
cursor.execute("insert into exam (question, Answer_A,Answer_B,Answer_C,Answer_D,right_Answer) values ('在中國歷史上是誰發(fā)明了麻藥', '孫思邈', '華佗', '張仲景', '扁鵲', '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獲得插入的行數(shù):
print(cursor.rowcount) #1
# 關閉Cursor:
cursor.close()
# 提交事務:
conn.commit()
# 關閉Connection:
conn.close()

3、答題設計

從建立好的題庫數(shù)據(jù)庫中讀取試題信息,callNext()函數(shù)實現(xiàn)判斷用戶選擇答案的正誤,正確則加10分,錯誤不加分。并判斷用戶是否做完,如果沒做完則將下一題的題目信息顯示到timu標簽,而4個選項顯示到radio1~ radio4這4個單選按鈕上;callResult()函數(shù)在GUI上顯示此時答題得分,實現(xiàn)代碼如下所示:

conn = sqlite3.connect('test2.db')
cursor = conn.cursor()
# 執(zhí)行查詢語句:
cursor.execute('select * from exam')
# 獲得查詢結(jié)果集:
values = cursor.fetchall()
print(values)
 
print('記錄數(shù):',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組件組件,實現(xiàn)選擇答案、確認和查看結(jié)果功能,實現(xiàn)代碼如下所示:

import tkinter
from tkinter import *
from tkinter.messagebox import *
 
root=tkinter.Tk()
root.title('Python智力問答游戲')
root.geometry("500x200")
r=tkinter.StringVar()						#創(chuàng)建StringVar對象
r.set('E') 							#設置初始值為'E',初始沒選中
k=0
score=0
timu=tkinter.Label(root,text=values[k][0])      #題目
timu.pack()
f1 = Frame(root)						#創(chuàng)建第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)						#創(chuàng)建第2個Frame組件
f2.pack()
Button(f2,text = '下一題',command=callNext).pack(side = LEFT)
Button(f2,text = '結(jié) 果',command=callResult).pack(side = LEFT)
root.mainloop()

到此這篇關于Python語言編寫智力問答小游戲功能的文章就介紹到這了,更多相關Python 智力問答小游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python元組拆包和具名元組解析實例詳解

    Python元組拆包和具名元組解析實例詳解

    這篇文章主要介紹了Python元組拆包和具名元組解析,下面的內(nèi)容就圍繞元組作為數(shù)據(jù)記錄屬性展開,并介紹帶字段名的具名元組函數(shù)namedtuple,列表屬性不再本文中敘述。
    2018-03-03
  • python讀取Dicom文件的示例詳解

    python讀取Dicom文件的示例詳解

    這篇文章通過示例代碼介紹了python讀取Dicom文件的方法,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • Python的Flask框架應用調(diào)用Redis隊列數(shù)據(jù)的方法

    Python的Flask框架應用調(diào)用Redis隊列數(shù)據(jù)的方法

    這里為大家?guī)鞵ython的Flask框架應用調(diào)用Redis隊列數(shù)據(jù)的方法,從而能夠?qū)崿F(xiàn)異步無阻塞從而提高某些實時處理情況下程序的性能,需要的朋友可以參考下
    2016-06-06
  • python使用logging模塊發(fā)送郵件代碼示例

    python使用logging模塊發(fā)送郵件代碼示例

    這篇文章主要介紹了python使用logging模塊發(fā)送郵件代碼示例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Opencv常見圖像格式Data Type及代碼實例

    Opencv常見圖像格式Data Type及代碼實例

    這篇文章主要介紹了Opencv常見圖像格式Data Type及代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • python pillow模塊使用方法詳解

    python pillow模塊使用方法詳解

    這篇文章主要介紹了python pillow模塊使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Pandas DataFrame replace替換后無效的解決

    Pandas DataFrame replace替換后無效的解決

    這篇文章主要介紹了Pandas DataFrame replace替換后無效的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python控制鼠標鍵盤代碼實例

    Python控制鼠標鍵盤代碼實例

    這篇文章主要介紹了Python控制鼠標鍵盤代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • python正則-re的用法詳解

    python正則-re的用法詳解

    這篇文章主要介紹了python正則-re的用法詳解,文中給大家提到了正則中的修飾符以及它的功能,需要的朋友可以參考下
    2019-07-07
  • Python類中__init__()?和self的詳細解析

    Python類中__init__()?和self的詳細解析

    self和__init__的語法學過Python的都清楚,但是靠死記硬背來迫使自己理解并不是個好辦法,下面這篇文章主要給大家介紹了關于Python類中__init__()?和self的相關資料,需要的朋友可以參考下
    2022-12-12

最新評論

高要市| 山阴县| 黎川县| 剑河县| 靖宇县| 茂名市| 望谟县| 临沂市| 沧州市| 繁峙县| 吉木乃县| 磐石市| 万宁市| 通化县| 恩施市| 定日县| 将乐县| 大方县| 高台县| 黑山县| 侯马市| 班戈县| 文昌市| 尤溪县| 忻州市| 新建县| 舞阳县| 潍坊市| 焦作市| 岱山县| 阿克陶县| 景宁| 文昌市| 陆丰市| 安达市| 富源县| 安塞县| 乌鲁木齐县| 宁武县| 丁青县| 海宁市|