我需要一些设计问题的帮助,在创建一个小测验游戏。在继续之前,如果下面的方法是可以的/可改进的/容易失败/.。这就是我到目前为止想出的:
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;
}
}我计划使用它的方式是在应用程序第一次运行时(使用Json或parcelable)将每个Module对象保存在SharedPreferences中。当我需要一组问题时,我只需从SharedPreferences中获取对象并将其“更新”发送回SharedPreferences。
如果需要指定一个明确的问题,那么它将是:与使用数据库相比,这种方式保存对象是否存在许多缺陷。也许我应该选择一种数据库方法(这是我写完所有这些之后才意识到的)?
我看了google的前三页“琐事游戏java教程”,但并没有得到足够的信息。
发布于 2020-06-17 07:47:02
在这里使用外部数据文件会更好。不久前,我为一个编码挑战编写了一个百万富翁类型的Quizz游戏,我使用了这样的工具:
问题-问题文本-答案(字符串的array4)
这是通过读取一个简单的文本文件来填补的,现在您可以使用JSON或XML来实现它,但是纯文本文件工作得很好,只是它没有那么灵活。
您可以使用Room或类似的东西来处理这些问题,但是请记住,编辑这些问题将是您做了很多的事情,所以让它对您来说尽可能简单。
在我的版本中,data中的第一个答案总是正确的。我在显示顺序时随机化了顺序,主要是为了更容易地将问题写下来,因为这需要大量的工作,而且您想让它更容易对您。
考虑将问题与时间戳结合起来存储多久一次,这样如果可能的话,可以避免重复这些问题。
在android中,创建一个活动来显示问题和可能的答案,然后单击显示选择的结果,然后更改ViewModel数据以显示下一个问题。
Score和其他变量可以通过使用通常的方式来处理状态更改来持久化。
https://stackoverflow.com/questions/31095156
复制相似问题