[英]Trivia game design pattern
我需要有關創建瑣事問答游戲的一些設計問題的幫助。 在繼續之前,我可以使用一些建議,如果以下方法可以/可改進/容易失敗/..。 這是我到目前為止想出的:
public class Question {
private String question;
private List<Answer> answers;
private int statisticsCorrectness;
}
public class Answer {
private String answer;
private boolean correct;
}
我不是在一個持有者類中創建問題,我可以用它來獲取一組問題(這是我不確定的地方,把它放在一個類中似乎是錯誤的,以前從未見過它)
public class StaticStuff {
public Module getModuleOne(){
Module module;
//Question1
Answer a = new Answer("Ten", true);
Answer a1 = new Answer("Five", false);
Answer a2 = new Answer("Six", false);
Answer a3 = new Answer("Eight", false);
Answer a4 = new Answer("10", true);
Answer[] listOfAn = new Answer[]{a, a1, a2, a3, a4};
Question q1 = new Question("What is 5 plus 5", Arrays.asList(listOfAn));
//End Question1
//Question2
//....
//End Question2
//Add all questions
Question[] questionsForFirstModule = new Question[]{q1};
//Create the module that will be returned
module = new Module("Introduction", Arrays.asList(questionsForFirstLession));
return module;
}
}
我計划使用它的方式是在應用程序第一次運行時將每個 Module 對象保存在 SharedPreferences 中(使用 Json 或parcelable)。 比當我需要這組問題時,我只需從 SharedPreferences 獲取對象並將其“更新”發送回 SharedPreferences。
如果需要指定一個明確的問題,那就是:與使用數據庫相比,以這種方式保存對象是否有很多缺點。 也許我應該采用數據庫方法(我在寫完所有這些之后才意識到的)?
我查看了谷歌“Trivia game java tutorial”的前三頁,但並沒有真正從中獲得足夠的信息。
在這里使用外部數據文件會更好。 前段時間我為編碼挑戰寫了一個百萬富翁類型的問答游戲,我使用了這樣的東西:
問題 - 問題文本 - 答案(字符串數組 [4])
這是通過讀取一個簡單的文本文件來填充的,今天您可以使用 JSON 或 XML,但是純文本文件運行良好,只是沒有那么靈活。
為此,您可以使用 Room 或類似的東西,但請記住,編輯這些問題將是您經常做的事情,因此請盡可能簡化。
在我的版本中,數據中的第一個答案總是正確的。 我在顯示它們時隨機排列了順序,主要是為了讓寫下問題更容易,因為這需要大量工作,而你想讓它變得容易。
考慮將問題的顯示頻率與時間戳結合起來存儲,以便盡可能避免重復這些問題。
在 android 中,創建一個活動來顯示帶有可能答案的問題,然后單擊顯示選擇的結果,然后更改 ViewModel 數據以顯示下一個問題。
分數和其他變量可以通過使用通常的方法來處理狀態變化來持久化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.