2010年12月28日 星期二

自己寫手機遊戲 Part.4 - 測驗題庫

寫這個程式本來是以為沒有這個時間,但是拿整本的題庫書來做的時候才發覺
整本的題庫書做過一次,不見得是真的記住內容,再做第二遍的話有時候只是記住了順序而已
而且很多題庫書的寫法是就直接把答案跟解析就寫在問題下面
這樣根本就沒有做模擬測驗的效果啊!

於是把之前Part.3的英文連連看拿來小修改,只花了差不多兩天時間就完成了這個
























左上圖:由於這回我認為有個功能得要加入,就是要能夠統計最近10次的平均分數
    於是先就這個新的需要,先寫個測試程式出來,完成後再把程式碼轉移過去
    畫面的內容很簡單,就是有個數字輸入框,把成績打進去後按input
    就會自動把最近10次input進去的數值算平均分數出來
    當然程式關閉後,分數還是有存檔紀錄

右上圖:就是程式完成後的樣子,從題庫中抽選50題,在No.的地方顯示目前做到第幾題
    回答問題就直接按畫面上的ABCD就行了,出下一題的話就按題號No.
    功能表當中可以有平均成績、關於、操作說明跟離開,就不另外截圖了


上圖就是法學緒論的題庫內容,可以看到題目數量到4806題了
這些都是歷年考試的原始考題,每次亂數不重複抽選50題出來做
這樣做的話會記住的就是真的記住了吧,我想....

























回答問題後,如果回答正確會像左上圖,正確的答案按鈕會顯示出來綠色
至於回答後分數不會馬上顯示,按下No.就出下一題,文字看起來是有點小
這個大小是取在「95%的題目都不需要捲動就可以完整顯示,但字還不會小到看不清」
不過實際試用起來....在搖晃的公車上的確很傷眼 orz
如果我的手機畫面大一些的話就好了,WQVGA這詭異的解析度是加長了,但還是不夠大
























如果回答錯誤的話,會用紅色顯示正確答案
老實說千分之五不到的考試,題目真是有機車....應該說是激車了
右上圖就是做完50題之後,一個訊息視窗顯示這回做幾分,再按下No.50就重新出題
一趟一個小時的公車,如果慢慢回答的話,最少也可以做上2次50題
比起看書做問題來說,是絕對有效率的多,在上課時作答,一邊筆記下重點會更有效
也讓我想到這早該寫的,暑假時寫英文單字連連看,那時順手就把這寫好不就好了

這類程式也有稍微搜尋過,請參考 維基 - 可攜式評估
裡面提到的PocketExam我有試用一下,這個軟體雖然不支援中文,但是可以使用圖片在題目中
試用的是2004年那時候的免費版,最近版是2009發行,要8.99塊美金
雖然說可以使用圖片,但是在小螢幕上放小圖片還要捲動....好像不是什麼好點子
另外他的題庫製作程式是要一題一題輸入....是說如果會VBA的話是有可能做成自動轉檔
但是幾千題使用XML的話....不含圖片的題庫可能就要10幾MB了
是說XML如果使用LINQ來處理的話可能還有一點希望
但是在手機上整個載入記憶體再來處理還是非常吃記憶體

這個程式其實依據我考試的科目,compile成3個執行檔
其實是可以寫成一個程式去選擇題庫就夠了,不過那樣比較複雜,simple is best
而且.net本體執行時就需要吃掉近800K記憶體,加上1MB多的題庫就總共要2MB
附帶一提,這回的執行檔大小只有28K,一開始也覺得奇怪,與上回的單字連連看比較起來
再回頭去看單字連連看才發覺Debug模式下,執行檔只有18K
但release模式就變成了390K,原來這回我是把.net的service pack給選擇不包進去
也就是說.net要多吃掉370K的容量
以現在的機器來說,只用Ver5.0&net 2.0來寫的話根本就不用包這些玩意
更不用說WP7的話,已經不支援舊版PPC程式了....
所以說,如果以後還有空的話、還有興致的話,大概就會轉去Android寫了