網(wǎng)站制作NEWS
如何做一個微信答題小程序(四)
嗨!大家好,我是小螞蟻。這一節(jié)里,我們繼續(xù)分享如何在答完題后進行答案的比對,以及如何實現(xiàn)一個回顧功能。
在上一節(jié)里我們提到過,為了記錄玩家的答題數(shù)據(jù),我們創(chuàng)建了一個新的表格——玩家答題選項表,里面記錄的是玩家回答的題目編號,以及對應的答案。當所有的題目都回答完畢,玩家選擇提交后,其實我們要做的,就是逐個的將“玩家答題選項表”中的數(shù)據(jù)與題庫中的答案數(shù)據(jù)進行比對,來檢查題目是答對還是答錯。
因為題目中包含著單選題和多選題,所以針對不同的題型,需要做不同的判斷處理。
單選題答案對比
首先來看一下單選題的答案對比。
單選題的對比比較簡單,因為單選題的答案只包含 1 個字符,我們只需要對比玩家選擇的選項與題庫中正確答案的選項是否相同,即可判斷當前的題目回答是否正確。
注意,在回答正確后,我們將“玩家答題選項表”對應的第 3 列的數(shù)字設置為 1。這里為“玩家答題選項表”又增加了一列,這一列用來記錄當前這道題的回答結果。
在第三列的內容中我們做了這樣的約定,如果當前的題目答對,則設置為 1。如果答錯,又分為兩種,一種是錯選,設置為 0,一種是多選題中的漏選,設置為 2。第三列的內容我們需要在回顧功能中用到。
多選題答案對比
多選題的答案對比相對比較復雜,因為會涉及到這樣的情況,例如當前題目的答案是 ABC,但是“玩家答題選項表”中對于多選題回答是根據(jù)用戶當前選擇選項的順序記錄的,也就是說如果用戶先選了 B,后選了 C ,最后選了 A,那么記錄的用戶答題數(shù)據(jù)是 BCA。很明顯如果直接將兩個字符串做比較的話 “ABC”是不等于“BCA”的。所以,我們無法拿整個字符串做比較。
那該如何對比呢?假設當前答案是 ABC,玩家選擇的是 BCA。我們可以這樣進行比對,依次從玩家的選擇中取出一個字符,然后看看它是否包含在正確答案中。過程就是這樣:首先取出 B,看看 B 是否包含在 ABC 中,接著取出 C,看看 C 是否包含在 ABC 中,最后取出 A,看看 A 是否包含在 ABC 中。只有玩家選擇中的每一個字符都包含在正確答案中,才能說明當前的回答正確。
但是,請再看一遍上方的比對邏輯,是否存在問題呢?如果答案是 ABCD,當前選了 ABD,按照上方的比對邏輯,ABD 三個字符確實答案中都有包含,但是很明顯這道題沒有答對,而是漏選了。
所以,對于多選題的比對,除了判斷每個字符必須包含在正確答案中之外,還需要一個條件,就是當前比對正確的次數(shù)要等于正確答案的字符數(shù)。還以上方的正確答案 ABCD,玩家選擇了 ABD 為例,共進行了 3 次比對,3 次比對都正確,但是因為不符合第二個條件,就是 3 次正確比對不等于正確答案的字符數(shù) 4,所以當前題目就不能判定為正確。
理解了上方的這個比對方法,我們再來看一下多選題答案比對的積木邏輯。
分為兩個步驟,首先,逐個拿用戶回答中的字符去與正確答案進行比對,其次對于滿足第一個條件的選項,再進行第二個條件判斷,只有同時滿足兩個條件,才能判定為回答正確,否則要么答錯,要么漏選。
最后,在完成了所有的題目判斷后,可以為用戶顯示最終的答題結果,預覽一下。
要實現(xiàn)答題回顧功能,我們需要借助的最重要的一張表格就是“玩家答題選項表”。
再來看一下這張重要的表格,它有 3 列,第 1 列記錄的是當前題目編號,第 2 列記錄的是當前題目玩家的選擇,第 3 列記錄的是結果。答題回顧功能的作用就是呈現(xiàn)出每一道題目的回答情況,然后提示題目是答對還是答錯,如果答錯的話,提示正確答案是什么。最后,針對多選題的答錯情況,還能借助表格的第 3 列給出進一步的提示,是錯選還是漏選。
來看一下回顧模式的具體實現(xiàn),原有的答題過程無需修改,只需要在“選項”中做一些與回顧模式有關的處理即可。
首先,在創(chuàng)建選項時,增加如下的處理。
這里我創(chuàng)建了一個“全局-回顧模式”的全局變量,用于標識當前是否是回顧模式。如果是回顧模式的話,向所有的選項發(fā)送一個“答案校對”的通知。
接著來看一下選項在接收到“答案校對”的通知后,都做了些什么。
這段長長的積木邏輯做了這樣的一些事情:
對于單選題,如果回答正確,就將選項設置為綠色,如果回答錯誤,就講選項設置為紅色,并且將正確選項設置為綠色。
對于多選題,對于選對以及漏選使用的是相同的處理方式,就是都將所有的正確選項設置為綠色,對于錯選的選項,將其顯示為紅色。
最后,我們還增加了一個“答題結果提示”,提示用戶當前題目的回答結果。
它的積木邏輯如下。
根據(jù)“玩家答題選項表”第 3 列的數(shù)據(jù),設置是答對,錯選還是漏選。
最后,來看一下效果。
好了,如何做一個微信答題小程序系列的教程到此就結束了。可見,微信小游戲制作工具除了能夠做小游戲之外,也能夠用于開發(fā)微信小程序。對于一個答題小游戲或者小程序來講,其實實現(xiàn)原理并不復雜,實現(xiàn)起來也不算太難。如果你能把這個系列教程好好的研究明白了,那么以后所有的答題游戲或者應用對你來說就都不是問題了。原理搞明白了,吃透一個,就能一通百通了。
下方為極簡刷題小程序的二維碼,還在繼續(xù)優(yōu)化中,可掃碼識別進行體驗。
獲取答題小程序工程:
我是會做游戲也會教你做游戲的小螞蟻,歡迎關注公眾號【小螞蟻教你做游戲】,領取全網(wǎng)最全的微信小游戲開發(fā)系列原創(chuàng)教程資料。 這是我做的精致系列的 2 款小游戲,歡迎試玩。
原創(chuàng)不易,如果覺得文章內容對你有幫助,歡迎點贊 轉發(fā),你的鼓勵對我來說價值巨大,感謝
多重隨機標簽
培訓中心宣傳文案 找一個能免費發(fā)布信息的網(wǎng)站要求權重高貼子內容收錄在百度排名好的像久久信息網(wǎng)類似的網(wǎng)站 西秦會館 伊寧市營造的房子有哪些 紹興市人民政府關于引進大院名校共建創(chuàng)新載體的意見基本信息 哪有培訓霓虹燈動畫制作的 鐘祥市新宇機電制造有限公司公司簡介 海外服務器好還是國內服務器好 經(jīng)營性網(wǎng)站與非經(jīng)營性網(wǎng)站的區(qū)別 大連市城市建設技工學校靠譜嗎 請求header字符串格式化 如何識別印章真假 dw是視覺傳達設計學的嗎 美食大戰(zhàn)老鼠游戲攻略 自制江門鴨肝腸時有什么好的建議 國考體育教育專業(yè)代碼 頂崗實習期表現(xiàn)良好會直接被公司錄用嗎 蘇州祺升之韻文化推廣有限公司怎么樣 干部公示期一般幾天 小郭跑腿播出時間 工業(yè)設計具體是什么 石林旅游資源 榆林將建成一座機場占地多大呢 2023年沈陽工程學院有哪些專業(yè) 張雪峰建議文科男生??七x的專業(yè) 楊柳青工業(yè)園咸菜廠找大齡工嗎 長沙彩紅唐傳媒有限公司怎么樣 贛州市譽道網(wǎng)絡技術有限公司怎么樣 所謂的ui設計師具體是做什么的好學么 太倉市交通運輸局內設機構及職能